GNU/Linux >> Znalost Linux >  >> Linux

Jak předat argument příkazového řádku do skriptu Shell?

Vím, že skripty shellu pouze spouštějí příkazy, jako by byly spouštěny v příkazovém řádku. Chtěl bych mít možnost spouštět skripty shellu, jako by to byly funkce... To znamená, že do skriptu převezmete vstupní hodnotu nebo řetězec. Jak k tomu přistoupím?

Přijatá odpověď:

Příkaz shell a všechny argumenty tohoto příkazu se zobrazí jako číslované proměnné shellu:$0 má hodnotu řetězce samotného příkazu, něco jako script , ./script , /home/user/bin/script nebo cokoli jiného. Všechny argumenty se zobrazí jako "$1" , "$2" , "$3" a tak dále. Počet argumentů je v proměnné shellu "$#" .

Běžné způsoby, jak se s tím vypořádat, zahrnují příkazy shellu getopts a shift . getopts je hodně podobný C getopt() funkce knihovny. shift přesune hodnotu $2 na $1 , $3 na $2 , a tak dále; $# se sníží. Kód se nakonec podívá na hodnotu "$1" , dělá věci pomocí caseesac rozhodnout o akci a poté provést shift přesunout $1 na další argument. Vždy musí prozkoumat pouze $1 a možná $# .


Linux
  1. Předat argumenty příkazového řádku skriptu Bash?

  2. Jak se analyzují argumenty vzdáleného příkazového řádku Ssh?

  3. Linux – Jak nabootovat Puppy Linux Slacko do příkazového řádku?

  1. Jak předat výstup jednoho příkazu jako argument druhému?

  2. Jak zjistit, zda je výstup příkazového nebo shellového skriptu Stdout nebo Stderr?

  3. Jak používat funkce shellu příkazového řádku v Linuxu

  1. 6 Očekávejte příklady argumentů příkazového řádku skriptu

  2. Jak uložit příkaz do proměnné v shell skriptu?

  3. Jak předat argumenty skriptu vyvolanému příkazem source?