使用存储在变量中的命令行参数调用 Bash 脚本中的程序

使用存储在变量中的命令行参数调用 Bash 脚本中的程序

是否可以使用存储在变量中的完整命令行参数(键和值)来调用 Bash 脚本中的某些程序?

scanimage我在脚本中使用以下调用:

scanimage -p --mode "True Gray" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

我想将一些参数存储在变量中。我尝试过这个,关于--mode开关:

options="--mode \"True Gray\""
scanimage -p $options --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

但这不起作用,scanimage说:

scanimage: setting of option --mode failed (Invalid argument)

仅存储开关的值--mode确实有效:

mode="True Gray"
scanimage -p --mode "$mode" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

但我想对开关进行更改,并且我还想自定义多个开关而不知道将设置哪些开关。

那么是否可以不仅将命令行选项的值存储在变量中,还可以将选项开关与值一起存储?

答案1

如果您使用数组而不是字符串,则可以执行此操作。尝试这个:

options=( '--mode' "True Gray" )
scanimage -p "${options[@]}" --resolution 150 -l 0 -t 0 -x 210 -y 297 --format=png  -o scan.png

相关内容