我有一个运行良好的参数的 bash 脚本:
if [ "$1" == "output" ]
then
echo "strting with output"
else
echo "without output"
fi
但现在我需要使用另一个应该独立于第一个参数的参数。这意味着有时第一个参数可能存在,也可能不存在。
if [ "$2" == "kill" ]
then killall myproc
fi
if [ "$1" == "output" ]
then
echo "strting with output"
else
echo "without output"
fi
如果两个参数都存在,这个脚本应该可以工作。但是当我不需要传递第一个参数时该如何解决问题?
答案1
虽然我认为在这种情况下最好使用选项(即 -o 和 -k),但您可以在脚本开始时解析参数并为每个参数设置变量。即:
#!/bin/sh
for x in $@
do
case $x in
output)
OUTPUT=True
;;
kill)
KILL=True
;;
esac
done
if [ $OUTPUT ]
then
echo output is set
fi
if [ $KILL ]
then
echo kill is set
fi