shell脚本参数
大约 1 分钟linuxcentos
内置参数

参数位序
# 下面是执行一个批处理文件,后面有两个参数
# 文件名称 test.sh 作为第一个参数 $0
# 后面的两个参数依次是:$1,$2
./test.sh param1 param2
# 那么要在批处理中打印参数的方法如下:
#!/bin/bash
echo "脚本名称:$0";
echo "第一个参数:$1";
echo "第二个参数:$2";
# 执行后打印的结果是:
# 脚本名称:test.sh
# 第一个参数:param1
# 第二个参数:param2
判断参数数量
要求必须传入2个参数,否则不执行之后的逻辑,直接退出当前 sh 文件
#!/bin/bash
if [ $# != 2 ] ; then
echo "请输入两个端口号作为参数,例如:8001 8002"
exit 1;
fi
文本替换时用到参数
批处理中使用 sed 替换指定文件 redis.conf 中的文本内容,如下面代码是将 port 6379 替换为 port 8001 其中参数 $1 是用户调用 sh 文件时传入的参数。port 后面的反斜线是转义字符,注意外面要用双引号,如果替换的内容中没有用到参数则可以使用单引号
sed -i "s/port\ 6379/port\ $1/g" redis.conf
如果不是文本替换的操作,在 sh 中的其他命令则可以直接使用参数:cd /usr/local/redis-cluster/$2
