是否可以使用存储在变量中的完整命令行参数(键和值)来调用 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