将标志添加到我的 shell 脚本

Adding flags to my shell script

运行 与 bash IProject.sh

想加bash -h IProject.sh

使用 -h(人类)我希望它打印出更多信息。

我的代码是...

while getopts h name
do 
   case $name in
      h) humanOpt=1;;
   esac 
done

#TESTING HERE
echo "$humanOpt"    

if [[ ! -z $humanOpt]]; then
   human version
else
   computer version 
fi

但是,我只打印 else 中的语句。这是为什么呢?

我想你可以通过反复试验来了解自己

bash IProject.sh -h

完成任务。但是你需要多填一点space才能bash呼吸

if [[ ! -z $humanOpt ]]; then # here

。您的第一个猜测 bash -h IProject.sh 添加 -h 作为 bash 命令本身的选项,而不是 IProject.sh 调用。