Linux Shell 参数传递多种方式

Posted lihuanhuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 password

echo $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=$2

echo -e  $name\\n
echo $password
./start.sh robin password
使用getopts接收传入的参数
#!/bin/sh

while 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
         

 

以上是关于Linux Shell 参数传递多种方式的主要内容,如果未能解决你的问题,请参考以下文章

linux_shell_传递参数

python 函数参数多种传递方法

linux---shell传递参数

shell脚本编程之传递参数

linux Shell特殊变量 $0, $#, $*, $@, $?, $$和命令行参数

linux之Shell编程--Shell参数传递实例演示