shell脚本传可选参数 getopts 和 getopt的方法 - 志不坚者智不达 - 博客园 (cnblogs.com)
选项之间可以通过冒号:进行分隔,也可以直接相连接,:表示选项后面必须带有参数,如果没有可以不加实际值进行传递
例如:getopts ahfvc: option表明选项a、h、f、v可以不加实际值进行传递,而选项c必须取值。使用选项取值时,必须使用变量OPTARG保存该值。
while getopts ":a:b" opt #第一个冒号表示忽略错误;字符后面的冒号表示该选项必须有自己的参数
用eval,可以把字符串当作命令来执行:
val=2
eval "x=\$$val"
echo $x
2. 用"$@"把参数列表转化成数组
val=1
x=( "$@" )
echo "${x[$val]}"
注意:数组是从0开始的,也就是 ${x[0]} 对应 $1、${x[1]} 对应 $2,依次类推……
如果应用场景不允许交互或文件传输的话,可以考虑变通的方法:目的是为了避免用户口令暴露,命令行可以考虑传递加密后的密文就好了,由test_b.sh调用时完成密文解析就可以了.
如果test_b.sh是为是完成用户口令重置的话,完全可以直接用标准密文进行口令重置的.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)