在Linux上传递带有感叹号(!)的参数时,需要注意以下几点:
./my_script.sh "hello!"
./my_script.sh hello\!
#!/bin/bash
param="$1"
echo "参数是:$param"
将上述脚本保存为my_script.sh
,并赋予执行权限(chmod +x my_script.sh
),然后运行:
./my_script.sh "hello!"
输出结果:
参数是:hello!
getopt
工具来处理。例如:#!/bin/bash
options=$(getopt -o "" -l "param:" -n "my_script.sh" -- "$@")
eval set -- "$options"
while true; do
case "$1" in
--param)
param="$2"
shift 2
;;
--)
shift
break
;;
*)
echo "Unknown option: $1"
exit 1
;;
esac
done
echo "参数是:$param"
将上述脚本保存为my_script.sh
,并赋予执行权限(chmod +x my_script.sh
),然后运行:
./my_script.sh --param="hello!"
输出结果:
参数是:hello!
总之,在Linux上传递带有感叹号的参数时,需要注意使用引号、转义字符、变量和getopt等方法来处理特殊字符。
领取专属 10元无门槛券
手把手带您无忧上云