Domanda :Quali sono le cose fondamentali di base che dovrei sapere per eseguire uno script di shell? Inoltre, quando eseguo il mio script di shell, viene visualizzato il messaggio di errore "Autorizzazione negata". Come lo risolvo?
Rispondi :Esaminiamo le 4 cose fondamentali di base che dovresti sapere sull'esecuzione di uno script di shell.
1. Individua l'eseguibile della shell e assegnalo come she-bang #!
Identifica il percorso completo in cui è installata la shell.
$ which sh /bin/sh (or) $ which ksh $ which bash
Dopo aver identificato la posizione dell'eseguibile della shell, scrivilo come shebang ( #! ) nella prima riga del file di script della shell.
$ vim helloworld.sh #!/bin/sh echo "Hello World!"
2. Assegna l'autorizzazione di esecuzione al file di script della shell
Se non disponi dell'autorizzazione di esecuzione per lo script, riceverai il messaggio di errore "Autorizzazione negata" come mostrato di seguito.
$ ./helloworld.sh bash: ./helloworld.sh: Permission denied
Assegna il permesso di esecuzione al file di script usando il comando chmod come mostrato di seguito.
$ chmod u+x helloworld.sh
Se vuoi concedere l'autorizzazione di esecuzione al gruppo e ad altri, fallo come mostrato di seguito.
$ chmod 755 helloworld.sh
Nota: Puoi anche farlo come un processo automatico. vale a dire ogni volta che apri un file di script della shell, entrambe le cose richieste, l'aggiunta di shebang e l'autorizzazione di esecuzione possono essere eseguite automaticamente utilizzando il plug-in bash-support.vim. Fare riferimento al nostro precedente articolo Rendi Vim come il tuo Bash-IDE usando il plug-in bash-support per maggiori dettagli.
3. Esegui lo script specificando il percorso assoluto o relativo
Puoi eseguire uno script di shell usando il percorso assoluto o il percorso relativo.
Esegui lo script specificando il percorso assoluto come mostrato di seguito.
$ /home/ramesh/scripts/helloworld.sh Hello World!
Esecuzione dello script specificando il relativo percorso come mostrato di seguito.
$ cd /home/ramesh/ $ ./scripts/helloworld.sh Hello World! (or) $ cd /home/ramesh/scripts $ ./helloworld.sh Hello World!
4. Eseguire lo script proprio come un normale comando Linux
È inoltre possibile eseguire uno script senza specificare il percorso completo, il percorso assoluto o il percorso relativo. Per fare ciò, aggiungi la directory in cui si trova tutto lo script della shell alla variabile di ambiente PATH come mostrato di seguito.
Ad esempio, una volta aggiunto /home/ramesh/scripts alla variabile di ambiente PATH, posso eseguire lo script da qualsiasi directory.
$ export PATH=$PATH:/home/ramesh/scripts $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ramesh/scripts $ cd /go/to/anydirectory $ helloworld.sh Hello World!