我目前正在制作一个BASH脚本(无法按照评分进行发布,但我们可以要求提供指导)并且我已经完成了它。
它经常使用ls命令,我们需要这样做,以便用户可以选择是否希望ls命令包含人类可读的大小格式。 (即ls是否包括-h)。
我想知道,有没有办法让它如果脚本执行的第二个参数是-h,那么所有ls命令都会包含-h选项?
干杯!
答案 0 :(得分:1)
最简单的方法是
#!/bin/bash
if [[ $1 == -h ]]
then
flags="-h"
else
flags=""
fi
ls -l $flags
然后你可以运行
./yourscript -h
./yourscript
它将分别运行带有和不带-h
的ls。
解析标志的更强大的解决方案包括getopts
,它允许您解析传统的Unix标志规范,如./yourscript -e foo -d bar -vhq
。如果你希望你的脚本允许多于这个参数,你应该研究一下。
答案 1 :(得分:0)
如果您正在迭代ls
的结果,则需要阅读http://mywiki.wooledge.org/ParsingLs。如果您只是使用ls
来显示文件,那就没关系了。
要在脚本中进行选项解析,请使用bash builtin getopts
- 在这里搜索getopts,我相信你会找到很多例子。
答案 2 :(得分:0)
尝试类似:
human=${option+-$option}
ls $human
example :
option="h"
echo ls $human
ls -h