我需要禁用 Bash 脚本中内置的对话框命令中的选项。这是原始的工作脚本:
my_backtitle="This is a test"
selected_options=($(dialog \
--backtitle "$my_backtitle" \
--separate-output \
--checklist "Select your options:" 0 0 \
"option1" "description of option 1" "" \
"option2" "description of option 2" "" \
3>&1 1>&2 2>&3))
然后我直接在数组中获得选定的选项。
在某些情况下,我需要禁用某些选项。我试过这样:
my_condition=false
my_backtitle="This is a test"
dialog_parameters="--backtitle '"
dialog_parameters+="$my_backtitle"
dialog_parameters+="' --separate-output \
--checklist "Select your options:" 0 0 "
if $my_condition
then
dialog_command+="'option1' 'description of option 1' '' "
fi
dialog_command+="'option2' 'description of option 2' ''"
selected_options=($(dialog $dialog_parameters 3>&1 1>&2 2>&3))
但我得到了错误:Error: Unknown option is.
使用调试set -e
参数,我看到参数扩展后的对话框命令:dialog --backtitle ''\''this' is a 'test'\''' --separate....
在这种情况下,如何正确引用包含空格的字符串?
我尝试过使用\"
变量,也尝试将参数存储在字符串数组中,但它没有解决问题。
我应该如何编写这样一个参数化的对话框命令?