Nel mio script bash ho bisogno di cambiare la directory corrente nella home directory dell'utente.Cambiare la directory di script in homedir dell'utente in uno script di shell
se voglio cambiare per foo home directory dell'utente, dalla riga di comando che posso fare:
cd ~foo
che funziona bene, ma quando lo faccio lo stesso dal sceneggiatura mi dice :
./bar.sh: line 4: cd: ~foo: No such file or directory
Cuciture come se fosse una cosa così banale, ma non funziona. Qual è il problema qui? Devo sfuggire il "~" o forse le virgolette mancanti o qualcos'altro?
Modifica
quando dico utente non intendo dell'utente corrente che esegue lo script, ma in generale qualsiasi altra utente del sistema
Modifica
Ecco la sceneggiatura:
#!/bin/bash
user="foo"
cd ~$user
se il nome utente è codificato come
cd ~foo
funziona, ma se è in variabile utente quindi non è così. Cosa mi manca qui?
Vuoi la directory home per l'utente foo, o la directory foo nella home directory dell'utente? –
Voglio home directory dell'utente foo –
Che aspetto ha il tuo Shebang? –