GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi příkazy v bash skriptu a příkazy v terminálu

Na vašem terminálu je spuštěn shell (s největší pravděpodobností bash ), který žádá o vaše příkazy a spouští je.

Kromě tohoto interaktivního režimu můžete také použít svůj shell ke spouštění příkazů ze souboru. Chcete-li spustit příkazy ve vašem souboru, můžete buď přímo zavolat shell jako bash script nebo můžete začít soubor s "shebang" #!/bin/bash a udělejte jej spustitelným (chmod +x script ). Pak můžete se skriptem zacházet jako s binárním souborem a spustit jej například jako ./script nebo ji dejte na místo, kde ji hledáte. (echo $PATH )

S největší pravděpodobností je váš interaktivní shell i shell použitý ke spuštění bash .Z pohledu "prvního dne učení linuxu" bash funguje úplně stejně v obou režimech. - Mnohem později můžete narazit na drobné rozdíly. Pokud se o tom chcete dozvědět podrobně, doporučuji přečíst si man bash a hledejte místa zmiňující „interaktivní“. (Manuálovou stránku můžete vyhledávat stisknutím / .)

Jedna důležitá věc, kterou je třeba poznamenat, je, že skript se spouští jako nový proces. To zejména znamená, že proměnné nastavené ve skriptu nejsou ve volajícím shellu viditelné.

$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$ 

Bez exportu a není viditelný ani pro vnitřní skript.


Linux
  1. Přesný rozdíl mezi ‚terminálem‘, ‚shell‘, ‚tty‘ a ‚konzolí‘?

  2. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  3. Rozdíl mezi ‚A‘ na příkazovém řádku (bash)??

  1. Rozdíl v použití mezi proměnnými shellu a proměnnými prostředí?

  2. Rozdíl mezi ${} a $() v Bash

  3. Jaký je rozdíl mezi &> a >&v bash?

  1. Naučte se rozdíl mezi příkazy „su“ a „su -“ v Linuxu

  2. Rozdíl mezi '{}' a {} v příkazu find?

  3. Rozdíl mezi příkazy 'ifconfig' a ​​'ip'