如何使用Shell脚本以任何顺序传递参数?例如:
./my_script.sh -h hdfs_path -s s3_loc -f file_name
./my_script.sh -s s3_loc -h hdfs_path -f file_name
./my_script.sh -f file_name -h hdfs_path -s s3_loc
我必须传递5个参数,但是我想这样写我的shell命令:
`-m mode_to_open_file ./myscript.sh -h hdfs_path -s s3_loc -f` file_name
我们可以使用实现此目的getopt
。它用于分解(解析)命令行中的选项,以方便shell过程进行解析,并检查合法选项。
您可以使用此示例解决问题:
#!/bin/bash
while getopts u:p: option
do
case "${option}"
in
u) USER=${OPTARG};;
p) PASSWORD=${OPTARG};;
esac
done
echo "User:"$USER
echo "Password:"$PASSWORD
在代码上方,按参数的任何顺序,会将正确的参数传递给函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句