GNU/Linux >> Znalost Linux >  >> Linux

Použít rozšíření .sh nebo .bash pro skripty Bash?

(Viz Použití #!/bin/sh nebo #!/bin/bash pro kompatibilitu a snadnost použití Ubuntu-OSX a POSIX)

Pokud chci, aby moje skripty používaly bash shell, použití rozšíření .bash skutečně vyvolá bash nebo to závisí na systémové konfiguraci / 1. řádku shebang. Pokud by obě byly účinné, ale odlišné, co by mělo přednost?

Nejsem si jistý, zda ukončit své skripty příponou .sh, abych označil pouze „skript shellu“, a poté nechat první řádek vybrat shell bash (např. #!/usr/bin/env bash ) nebo zda je ukončit pouze .bash (stejně jako nastavení řádku 1). Chci, aby byl vyvolán bash.

Přijatá odpověď:

použití rozšíření .bash skutečně vyvolá bash nebo to závisí
na konfiguraci systému / 1. řádku shebang.

Pokud interpret nepoužíváte explicitně, pak je vyvolávaný interpret určen shebang použitý ve scénáři. Pokud použijete konkrétně tlumočníka, pak je tlumočníkovi jedno, jaké rozšíření svému skriptu dáte. Rozšíření však existuje, aby bylo ostatním velmi zřejmé, o jaký typ skriptu se jedná.

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

Viz .py rozšíření skriptu bash z něj nedělá skript python.

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

Vždy je to bash skript.

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

Linux
  1. Jak používat šifrované heslo ve skriptu Linux Bash Shell

  2. Prostory pro proměnné ve skriptu Bash?

  3. Jak zvýraznit Bash skripty ve Vimu?

  1. Jak používat příkaz if else Conditionals ve skriptu Bash

  2. automatizace relace telnet pomocí bash skriptů

  3. Šablony pro spouštěcí skript?

  1. Použití Bash pro automatizaci

  2. 2 Perl skripty pro regresi paměti pro Linux

  3. Variabilní rozsah pro skripty bash shell a funkce ve skriptu