【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
推荐阅读
- SCCM2013系列,OSD OEM 硬盘格式化操作系统系统分区指定工具参数简介
- 新基建+新科技,智慧港口船舶抢抓数字化转型先机
- k8s 部署Nacos集群
- Linux安装kibana
- etcd集群常见问题
- 2万字阐述-Python 用 XGBoost 进行梯度提升的数据准备(收藏)
- centos安装nginx并配置SSL证书
- K8s 存活(liveness)就绪(readiness)和启动(startup)探测器
- linux之rename命令