Linux BASH-添加充当开关的参数
我目前正在编写一个BASH脚本(无法发布,因为它是分级的,但是我们可以要求指导),我几乎完成了它 它经常使用ls命令,我们需要这样做,以便用户可以选择是否希望ls命令包含人类可读的大小格式。(即ls是否包括-h) 我想知道,是否有办法使脚本执行的第二个参数为-h,那么所有ls命令都将包含-h选项?Linux BASH-添加充当开关的参数,linux,bash,shell,Linux,Bash,Shell,我目前正在编写一个BASH脚本(无法发布,因为它是分级的,但是我们可以要求指导),我几乎完成了它 它经常使用ls命令,我们需要这样做,以便用户可以选择是否希望ls命令包含人类可读的大小格式。(即ls是否包括-h) 我想知道,是否有办法使脚本执行的第二个参数为-h,那么所有ls命令都将包含-h选项? 干杯 如果您正在迭代ls的结果,则需要阅读。如果您使用ls只是为了显示文件,那么就可以了 要在脚本中进行选项解析,请使用bash内置函数——在此处搜索getopts,我相信您会找到很多示例。尝试以下方
干杯 如果您正在迭代
ls
的结果,则需要阅读。如果您使用ls
只是为了显示文件,那么就可以了
要在脚本中进行选项解析,请使用bash内置函数——在此处搜索getopts,我相信您会找到很多示例。尝试以下方法:
human=${option+-$option}
ls $human
example :
option="h"
echo ls $human
ls -h
最简单的方法是
#!/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
。如果你想让你的脚本允许不止一个参数,你应该研究一下。mangetopt
是你的答案。那么,假设我有一个.txt文件,在Size1 File1 Size2 File2等列中包含以下信息,我如何访问这些大小,使它们成为人类可读的,并用新的大小替换.txt文件中需要的所有大小?