我正在编写一个带有选项的 bash 程序。
例如 :./my_program -l 3 -a -s
-l 3将输出限制为三行-a将选择我的所有文件-s将对输出进行排序现在,我可以这样一次使用两个选项:
if [ $all == 1 ]
then
if [ $sort == 1 ]
then
printf '%s\n' "${haikus[@]}" | sed -e 's/^[ \t]*//' | sort
else
printf '%s\n' "${haikus[@]}" | sed -e 's/^[ \t]*//'
fi
fi
Run Code Online (Sandbox Code Playgroud)
如果-a选项,我打印整个文件,或者,如果-a选项和-s选项,我使用相同的命令,但我使用sort.
通过这个解决方案,如果我想实现-l,它将创建很多“if”语句。
我首先想到创建一个包含我的命令的变量。
例子:
sort='sort'
limit='grep -m3'
Run Code Online (Sandbox Code Playgroud)
然后这样写我的命令:
printf '%s\n' "${haikus[@]}" | sed -e 's/^[ \t]*//' | …Run Code Online (Sandbox Code Playgroud)