Linux Shell 参数传递多种方式

【Linux Shell 参数传递多种方式】天下之事常成于困约,而败于奢靡。这篇文章主要讲述Linux Shell 参数传递多种方式相关的知识,希望能为你提供帮助。
Linux Shell 参数传递多种方式
背景最近编写ansible脚本,需要自动调用之前写好的shell脚本,由于shell脚本中包含了read命令接收用户的手动输入,为了实现ansible脚本的自动运行,不得不将手动输入转换为自动输入。以下为常见的两种场景:
read命令接收输入

#!/bin/sh #file name start.sh echo "please input name" read name echo "please intput pssword" read passwordecho $name echo \'line end\' echo $password

#第一种方式 echo -e "robin\\npassword"|./start.sh

#第二种方式 echo -e "robin\\npassword" > parm ./start.sh < parm

#第三种方式 使用expect

$1 $2 … 接收传入的参数
#!/bin/sh #file name start.sh name=$1 password=$2echo -e$name\\n echo $password

./start.sh robin password

使用getopts接收传入的参数
#!/bin/shwhile getopts ":a:b:c:" opt do case $opt in a) echo "参数a的值$OPTARG" ; ; b) echo "参数b的值$OPTARG" ; ; c) echo "参数c的值$OPTARG" ; ; ?) echo "未知参数" exit 1; ; esac done

./start_4.sh -a 1 -b 2



    推荐阅读