tento první řádek (#!/ bin / bash nebo #!/ bin / sh) má jméno. To je známé jako „she-bang“ (shabang). To je odvozeno od zřetězení žetonů sharp ( # ) a bang (!). To je také nazýváno jako sh-bang, hashbang, poundbang nebo hash-pling. Ve výpočetní technice je she-bang posloupnost znaků sestávající z číselného znaku znaků a vykřičníku (#!) na začátku scénáře.
/ bin / bash VS/bin / sh
často jsme viděli různé hlavičky she-bang nebo script. Často se divíme, proč ten konkrétní skript používá ten konkrétní třesk, proč ne nějaký jiný. V unixových operačních systémech máme na výběr z více shellů. Shell je zodpovědný nejen za malé výzvy, ale také za interpretaci příkazů skriptu. Shell tak hraje důležitou roli zejména při implementaci velkých a složitých logik pomocí podmínek, potrubí , smyček atd.
/bin / sh je spustitelný soubor představující systémový shell a obvykle implementovaný jako symbolický odkaz směřující k spustitelnému souboru pro kterýkoli shell je systémový shell. Systémový shell je v podstatě výchozí shell, který by měl skript použít. V posledních několika letech se Debian (a Ubuntu) rozhodli přepnout systémový shell z bash na dash-podobný shell, ale lehčí a mnohem rychlejší.
Dash je poměrně dobře kompatibilní s bash, je založen na stejném standardu POSIX. Neimplementuje však rozšíření specifická pro bash. POSIX standard je přenosné rozhraní operačního systému, pokus o standardizaci unixových operačních systémů. Přestože systémový shell Ubuntu ukazuje na dash, váš přihlašovací shell jako uživatel je v tuto chvíli stále bash.
/ bin / bash je nejběžnější shell používaný jako výchozí shell pro přihlášení uživatele systému linux. Název shellu je zkratka pro Bourne-again shell. Bash může provádět drtivou většinu skriptů, a proto je široce používán, protože má více funkcí,je dobře vyvinutý a lepší syntaxe.
CO JE TO ? / PROČ JI POUŽÍVÁME?
#!/bin/bash
echo $(date) # Will print the output of date command
touch ~/output.txt
echo "Hey there" > ~/output.txt
uvažujme velmi jednoduchý skript, jak je uvedeno výše. V nejjednodušším případě, pokud analyzujeme shell skript, není to nic jiného než seznam příkazů uložených v souboru. Snižuje naše úsilí spouštět stejný úkol nebo příkazy znovu a znovu. Pokud se tedy podíváme na začátek skriptu, první řádek začíná hash ( # ) a vykřičník (!). Jak už musíte vědět, že jakýkoli řádek začínající hash ( # ), se čte jako komentář. Když tedy spustíme skript, první řádek se přečte jako komentář a interpret přejde na druhý řádek. Ale první řádek již udělal svou práci.
v unixových operačních systémech, když skript začínající she-bang (#! program loader analyzuje zbytek počátečního řádku skriptu jako direktivu interpretu. Proto je místo toho spuštěn zadaný interpretační program, který mu předává jako argument cestu, která byla původně použita skriptem.
Předpokládám, že každý scénář začíná s následující řádek:
#!/bin/sh
pak program loader je pokyn k použití /bin/sh, program, místo jakékoliv jiné, kolem cesty skriptu jako první argument.
jednoduše řečeno, she-bang v čele skriptu říká systému, že tento soubor je sada příkazů, které mají být přiváděny do uvedeného interpretu příkazů. Unixové operační systémy mají různé Shelly a každý z řádků záhlaví skriptu volá jiný interpret příkazů.
některé příklady she-bang
#!/bin /sh: spustí skript pomocí Bourne shellu nebo kompatibilního shellu s path/bin / sh
#!/ bin / bash: spustí skript pomocí Bash shellu.
#!/ bin / csh-f: spustí skript pomocí C shellu nebo kompatibilního shellu.
#!/usr / bin / perl-T: spustí skript pomocí perl s možností kontroly nakazit
#!/usr/bin / env python :Spustí skript pomocí Pythonu vyhledáním cesty k interpretu Pythonu automaticky z proměnných prostředí
doufejme, že budete mít lepší představu o tom, co she-bang je nyní a k jakému účelu slouží.