Bash

使用儲存在變數中的命令行參數呼叫 Bash 腳本中的程序

  • February 17, 2022

是否可以在 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

但我想改變開關,我也想定制多個開關,而不知道要設置哪個。

那麼是否可以不僅將命令行選項的值儲存在變數中,還可以將選項開關與值一起儲存?

如果您使用數組而不是字元串,則可以執行此操作。嘗試這個:

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

引用自:https://unix.stackexchange.com/questions/691090