我编写了下面的 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"