Linux 如何在.shell脚本文件中传递参数
这是我第一次尝试在ubuntu上编辑.sh文件Linux 如何在.shell脚本文件中传递参数,linux,shell,sh,Linux,Shell,Sh,这是我第一次尝试在ubuntu上编辑.sh文件 ng build @xyz--abc/my-${library} 我试图传递一个标志--build optimizer=false,但如果我将其添加到末尾,它将给出错误未知选项:'--build optimizer' 需要有关如何添加此标志的帮助 谢谢 解析参数并将其传递给底层的ls。这就是你想要达到的目标吗 通常,命令行参数选项解析是通过bash内置的getopts或平台特定的getopt实现实现的。虽然getopts不支持解析长命令行选项,但
ng build @xyz--abc/my-${library}
我试图传递一个标志--build optimizer=false
,但如果我将其添加到末尾,它将给出错误未知选项:'--build optimizer'
需要有关如何添加此标志的帮助
谢谢
解析参数并将其传递给底层的ls
。这就是你想要达到的目标吗
通常,命令行参数选项解析是通过bash内置的
getopts
或平台特定的getopt
实现实现的。虽然getopts
不支持解析长命令行选项,但GNUgetopt
实现支持解析长命令行选项。这详细指出了相应实现之间的差异。有关如何使用bash内置getopts
的示例,我将参考
因此,为了给您一个正确的答案,这取决于您试图修改的脚本如何实现命令行选项解析。事实上,我有一个.sh文件,其中有许多内容,其中一行是ng build@xyz--abc/my-${library},我需要在其中传递一个参数--flag=true。我不知道怎么做。我非常感谢您的努力,就像我在上面的
.sh
文件中传递了--color=yes
参数一样。它对您不起作用吗?--build optimizer
来自哪里?请显示相关代码并说明确切的问题或错误。另见。
LS_OPTIONS=''
while [ $# -gt 0 ]; do
case "$1" in
--color=*)
colorarg="${1#*=}"
LS_OPTIONS="${LS_OPTIONS} ${1}"
;;
-a|--all)
allarg="${1}"
LS_OPTIONS="${LS_OPTIONS} ${1}"
;;
*)
printf "* Error: Invalid argument.*\n"
exit 1
esac
shift
done
printf "all val: %s\n\n" "$allarg"
printf "color val: %s\n\n" "$colorarg"
ls ${LS_OPTIONS}