In iTerm, perché il comando di una shell di comandi non rileva le cose sul mio $ PATH?

1

Ho uno script nella mia directory ~/.bin che cambia lo sfondo di iTerm prima di iniziare una sessione SSH (come dettagliato qui , script leggermente modificato da questa versione ).

Se avvio una sessione di accesso regolare e eseguo il mio comando, sshb servername , funziona perfettamente! L'immagine di sfondo viene caricata e viene avviata la sessione SSH.

Tuttavia, se imposto un profilo per avviare una sessione con lo stesso comando, si verifica un errore e dice che non riesce a trovare sshb . Se faccio il mio comando ~/.bin/sshb servername , esegue il comando, ma dice che non riesce a trovare il comando ImageMagick convert usato in quello script.

Sembra che il comando command shell non conosca il mio $PATH . Suppongo che potrei capire dove convert vive e modificare lo script per utilizzare il percorso completo, ma che sembra trattare i sintomi, non il problema. C'è un modo per far sì che la shell dei comandi carichi le mie variabili di ambiente prima di eseguire quel comando?

    
posta 75th Trombone 14.11.2013 - 23:49
fonte

1 risposta

1

Le variabili di ambiente come PATH e TERM sono normalmente ereditate dalla shell. Quando esegui direttamente lo script, vengono annullati.

Puoi eseguire lo script come processo secondario di una shell di accesso impostando il comando su bash -lc "~/.bin/sshb servername" .

    
risposta data 15.11.2013 - 21:33
fonte

Leggi altre domande sui tag