GNU/Linux >> Znalost Linux >  >> Linux

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

Jsem nový v programování bash skriptů.

Chci implementovat bash skript ‚deploymLog‘, který přijímá jako vstup jeden řetězcový argument (název).

[[email protected] Desktop]# ./deploymLog.sh name

zde chci předat řetězec argument(name) přes příkazový řádek

Jako první krok musím připojit aktuální časové razítko spolu s tímto vstupním řetězcem do souboru protokolu, řekněme Logone.txt v aktuálním adresáři v níže uvedeném formátu:

[name]=[System time timestamp1]

Jak je to možné?

Přijatá odpověď:

$> cat ./deploymLog.sh 
#!/bin/bash

name=$1
log_file="Logone.txt"

if [[ -n "$name" ]]; then
    echo "$1=$( date +%s )" >> ${log_file}
else
    echo "argument error"
fi

První argument z příkazového řádku lze nalézt s pozičním parametrem $1 . [[ -n "$name" ]] testuje, zda $name není prázdný. date +%s vrátí aktuální časové razítko v unixovém čase. >> operátor se používá k zápisu do souboru připojením k existujícím datům v souboru.

$> ./deploymLog.sh tt

$> cat Logone.txt 
tt=1329810941

$> ./deploymLog.sh rr

$> cat Logone.txt 
tt=1329810941
rr=1329810953

Pro lepší čitelnost časového razítka si můžete pohrát s date argumenty.


Linux
  1. Jak předat parametry skriptu Bash?

  2. Čtěte řádek po řádku v bash skriptu

  3. Existují standardy pro přepínače a argumenty příkazového řádku Linuxu?

  1. Ukončovací kódy příkazového řádku Bash byly demystifikovány

  2. Zachovat uvozovky v argumentech bash

  3. bash:jak předat argumenty příkazového řádku obsahující speciální znaky

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

  2. Bash Echo Příkazový řádek spuštěn na samotném příkazovém řádku (ne ve skriptu)?

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