Snažím se ujistit, že když je skript spuštěn, je spuštěn jako konkrétní uživatel, aniž bych musel tomuto uživateli před spuštěním skriptu su. Skript se také spouští s několika příznaky, například
./myscript.sh -e dev -v 1.9
Zkoušel jsem následující
[ `whoami` = myuser ] || exec sudo -S su - myuser -c "bash `pwd`/`basename $0` [email protected]"
Ale parametr -v, který má být vstupem do mého skriptu, je přiváděn jako vstup do su. Stěžuje si tedy na neplatnou možnost, existuje způsob, jak výše uvedené napravit?
Poznámka:Osoba spouštějící skript má oprávnění sudo.
Přijatá odpověď:
 Aktuální uživatel je již v proměnné $USER . Takže vše, co potřebujete, je:
[ "$USER" = "myuser" ] || sudo -u myuser $0 "[email protected]"
 Není potřeba sudo su , sudo dokáže vše, co potřebujete. Nepotřebujete ani pwd nebo basename , $0 proměnná již má úplnou cestu ke skriptu.
 Váš původní příkaz spouštěl přihlašovací shell (su - ). Pokud je to opravdu potřeba (což se zdá divné), můžete to udělat:
[ "$USER" = "myuser" ] || sudo -iu myuser $0 "[email protected]"