Remova as aspas duplas aqui run_hdmi "$2"
Eu escrevi o script bash abaixo (chamado hdmi_output) e está funcionando na maioria das partes como eu esperava.
Por exemplo, eu corro hdmi_output run firefox
e o Firefox é iniciado no monitor externo.
Mas às vezes eu quero rodar programas com argumentos e isso não funciona mais. Por exemplo. quando executando hdmi_output run "firefox -P -no-remote"
, recebo isso:
/usr/bin/vglrun: 296: exec: **firefox -P -no-remote: not found
Eu o escrevi entre aspas para ser tratado como uma variável, mas não parece funcionar.
Alguém pode me ajudar a melhorar o script, talvez o comando shift
deva ser usado?
#!/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
Remova as aspas duplas aqui run_hdmi "$2"