Bash 脚本中的参数编号

Bash 脚本中的参数编号

我有一个运行良好的参数的 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

相关内容