Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在.shell脚本文件中传递参数_Linux_Shell_Sh - Fatal编程技术网

Linux 如何在.shell脚本文件中传递参数

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不支持解析长命令行选项,但

这是我第一次尝试在ubuntu上编辑.sh文件

ng build @xyz--abc/my-${library}
我试图传递一个标志
--build optimizer=false
,但如果我将其添加到末尾,它将给出错误
未知选项:'--build optimizer'

需要有关如何添加此标志的帮助

谢谢

解析参数并将其传递给底层的
ls
。这就是你想要达到的目标吗


通常,命令行参数选项解析是通过bash内置的
getopts
或平台特定的
getopt
实现实现的。虽然
getopts
不支持解析长命令行选项,但GNU
getopt
实现支持解析长命令行选项。这详细指出了相应实现之间的差异。有关如何使用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}