Ich bin neu in der Bash-Skriptprogrammierung.
Ich möchte ein Bash-Skript „deploymLog“ implementieren, das als Eingabe ein Zeichenfolgenargument (Name) akzeptiert.
[[email protected] Desktop]# ./deploymLog.sh name
Hier möchte ich das String-Argument (Name) über die Befehlszeile übergeben
Als ersten Schritt muss ich den aktuellen Zeitstempel zusammen mit dieser Eingabezeichenfolge an eine Protokolldatei anhängen, z. B. Logone.txt
im aktuellen Verzeichnis im folgenden Format:
[name]=[System time timestamp1]
Wie ist das möglich?
Akzeptierte Antwort:
$> 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
Das erste Argument einer Befehlszeile kann mit dem Positionsparameter $1
gefunden werden . [[ -n "$name" ]]
testet, ob $name
ist nicht leer. date +%s
gibt den aktuellen Zeitstempel in Unix-Zeit zurück. Der >>
Der Operator wird verwendet, um in eine Datei zu schreiben, indem er an die vorhandenen Daten in der Datei angehängt wird.
$> ./deploymLog.sh tt
$> cat Logone.txt
tt=1329810941
$> ./deploymLog.sh rr
$> cat Logone.txt
tt=1329810941
rr=1329810953
Für einen besser lesbaren Zeitstempel könnten Sie mit date
spielen Argumente.