mio semplice script è come questo:". Filename" non trova il file quando viene eseguito da/bin/sh, funziona da/bin/bash; perché?
#!/bin/sh
DEF=.file_name_with_a_leading_dot.sh
. ${DEF}
Avviso/bin/sh sulla riga superiore. Quando eseguo questo semplice script, ricevo un errore che il file non è stato trovato. Ma, se cambio quella linea superiore a #!/Bin/bash, lo script trova quel file nella directory corrente bene.
Ma sul mio computer portatile Linux Ubuntu vedo che/bin/sh è un link simbolico a/bin/bash. Quindi, perché il mio script si comporta diversamente?
Inoltre, posso eseguire lo script come questo:
/bin/bash ./script.sh
Ed è OK.
Quindi, cosa mi manca?
Puoi dare un'occhiata qui: http://stackoverflow.com/questions/5725296/difference-between-sh-and-bash. Fondamentalmente, 'bash' e' sh' non sono la stessa cosa – ThanksForAllTheFish
Bash si avvia in modalità di compatibilità quando chiamato come '/ bin/sh' – hek2mgl
Ma perché significa che non trova il file? Posso riprodurre questo. – tripleee