Bash 命令无法读取变量参数

Bash 命令无法读取变量参数

这是我的程序

#!/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[@]}"

相关内容