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.