基本上我要做的是创建一个if条件来评估程序是否已使用特定参数启动。
基本上,您有三个程序启动选项
./testprogram
或
./testprogram [-i EXCEPTION] DIR
我要做的是,确定程序是否已使用其中一个参数启动。以下是启动选项:
所以我创建了以下函数
parse_arg(){
# when launched with no argument, fairly self explanatory
if [[ $# == '0' ]]; then
DIR="$PWD"
DIR=$DIR
fi
现在这里是一个棘手的部分,我需要弄清楚一种方法,检查第二个细分是-i异常还是简单的dir,换句话说,我只是不能说明我们用它启动它的论点数量。我试图做的是创建一个参数来帮助我建立if条件
I_DETECT="$1"
现在我不确定是否,如何在保持空格控制的同时基本上切割字符串中的单词。
我能想到的唯一方法就是基本回应它然后使用cut函数。问题是,我需要回应它
我试过这个
I_DETECT=$(echo I_DETECT | awk '{print $1;})'
elif [[ $# == '1' && $I_DETECT != "-i" ]] then;
... #you get the point
问题是awk工具的性质它仍然最终将它打印到STDOUT,当我想要的只是评估if条件的表达式。
那么有什么想法可以提供更优雅的解决方案吗?
答案 0 :(得分:0)
getopt
是解析参数的好方法,包括--long-options
。这将避免这项工作中最繁琐的部分。