GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzare l'estensione .sh o .bash per gli script Bash?

(Vedi Usa #!/bin/sh o #!/bin/bash per compatibilità Ubuntu-OSX e facilità d'uso e POSIX)

Se voglio che i miei script utilizzino la shell bash, l'utilizzo dell'estensione .bash richiama effettivamente bash o dipende dalla configurazione del sistema / 1a riga shebang. Se entrambi fossero in vigore ma diversi, quale avrebbe la precedenza?

Non sono sicuro se terminare i miei script con .sh per indicare semplicemente "script di shell" e quindi fare in modo che la prima riga selezioni la shell bash (ad es. #!/usr/bin/env bash ) o se terminarli semplicemente con .bash (così come l'impostazione della riga 1). Voglio che bash venga invocato.

Risposta accettata:

l'utilizzo dell'estensione .bash in realtà richiama bash o dipende
dalla configurazione del sistema / 1a riga shebang.

Se non utilizzi un interprete in modo esplicito, l'interprete invocato è determinato da shebang utilizzato nella sceneggiatura. Se usi un interprete in modo specifico, all'interprete non importa quale estensione dai per il tuo script. Tuttavia, l'estensione esiste per rendere molto ovvio per gli altri che tipo di script è.

[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"

Vedi, .py l'estensione allo script bash non lo rende uno script python.

[[email protected] ~]$ python ./ext.py
  File "./ext.py", line 2
    echo "Hi. I am a bash script"
                                ^
SyntaxError: invalid syntax

È sempre un bash copione.

[[email protected] ~]$ ./ext.py
Hi. I am a bash script

Linux
  1. Utilizzo di Bash per l'automazione

  2. Perché non posso usare Cd in uno script Bash??

  3. Spazi per le variabili nello script Bash?

  4. 2 Script Perl di regressione della memoria per Linux

  5. Come evidenziare gli script Bash in Vim?

Bash For Loop

Scrivere commenti negli script Bash

Come utilizzare le istruzioni condizionali negli script Bash

Come utilizzare il comando echo negli script Bash in Linux

Bash Beginner Series #3:Passare argomenti agli script Bash

Script Bash per Loop spiegato con esempi