Ci ho provato
./home/user/scripts/someScript
ma non funziona
Nessun file o directory con questo nome
qualche idea?
Ci ho provato
./home/user/scripts/someScript
ma non funziona
Nessun file o directory con questo nome
qualche idea?
Risposte:
Il punto iniziale nel comando significa "relativo alla directory corrente". Rimuovilo e farà riferimento a "il file someScript
nella directory /home/user/scripts
:
/home/user/scripts/someScript
Se ricevi "Autorizzazione negata", è perché non hai autorizzazioni sufficienti per accedere al file nella directory di altri utenti o perché il file non è eseguibile. Per renderlo eseguibile, esegui:
chmod +x /home/user/scripts/someScript
Se lo script deve accedere alle risorse nella stessa cartella da cui viene eseguito e lo hai specificato come percorsi relativi, lo script si interromperà.
Aggiungo sempre cd $(dirname $0)
a alla testa del mio script in modo che la cartella contenente lo script sia la cartella principale.
Rimuovi il .
Se rendi eseguibile chmod 755 <nameofscript>
lo script per eseguirlo, devi solo digitare il percorso dello script.
Quando vedi che ./script
viene usato, dice alla shell che lo script si trova nella stessa directory in cui lo stai eseguendo. Per utilizzare il percorso completo digitato sh /home/user/scripts/someScript
.
sh /path/to/file
è diverso da /path/to/file
. sh
viene eseguito il /bin/sh
collegamento simbolico a /bin/dash
.
sh ./somescript
che possono anche essere digitati come `sh / path / to / script / scriptitself '.