Bash 脚本:以参数作为单个变量的程序:未找到命令

Bash 脚本:以参数作为单个变量的程序:未找到命令

我编写了下面的 bash 脚本(称为 hdmi_output),它在大多数情况下都按我预期的方式运行。

例如,我运行hdmi_output run firefox并且 Firefox 在外部显示器上启动。

但有时我想运行带有参数的程序,但这不再起作用。例如,运行时hdmi_output run "firefox -P -no-remote",我得到这个:

/usr/bin/vglrun: 296: exec: **firefox -P -no-remote: not found

我把它写在引号中,将其作为一个变量处理,但它似乎不起作用。

有人能帮我改进脚本吗,也许shift应该使用命令?

#!/bin/bash

start_hdmi() {
...
...
}

run_hdmi() {
    DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH optirun "$@"
}

if [[ "$@" == "start" ]]; then
    start_hdmi
elif [[ "$#" == "2" && "$1" == "run" ]]; then
    run_hdmi "$2"
else
    echo "$0 start|run <program>"
fi

答案1

删除这里的双引号run_hdmi "$2"

相关内容