这是我的程序
#!/bin/bash
command="LVDS-1 --auto --right-of HDMI-1"
main_mon="LVDS-1"
position="--right-of"
aux_mon="HDMI-1"
# Don't work
# warning: output LVDS-1 --auto --right-of HDMI-1 not found; ignoring
xrandr --output "$command"
# Works
xrandr --output "$main_mon" --auto "$position" "$aux_mon"
正如您所看到的,如果我“分割”command
成几个变量xrandr
就可以运行该命令,否则就不能运行。
输出错误是:warning: output LVDS-1 --auto --right-of HDMI-1 not found; ignoring
使用时$command
答案1
xrandr
要求每个参数都是一个单独的单词。请参阅“单词拆分”一文man bash
。
要仅使用一个变量,您可以在 bash 中使用数组:
#! /bin/bash
args=( --output LVDS-1 --auto --right-of HDMI-1 )
xrandr "${args[@]}"