GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Befehlszeilenargumente an Bash-Skript übergeben?

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.


Linux
  1. 6 Beispiele für Script-Befehlszeilenargumente

  2. Wie übergebe ich Parameter an ein Bash-Skript?

  3. Zeile für Zeile im Bash-Skript lesen

  4. Gibt es Standards für Linux-Befehlszeilenschalter und -argumente?

  5. Bewahren Sie Anführungszeichen in Bash-Argumenten auf

Linux-Sleep-Befehl (Pausieren eines Bash-Skripts)

Wie übergibt man ein Befehlszeilenargument an ein Shell-Skript?

Bash-Anfängerserie Nr. 3:Übergabe von Argumenten an Bash-Skripte

Wie liest man Befehlszeilenargumente in Shell-Skripten?

Wie übergebe ich Argumente an ein Skript, das vom Quellbefehl aufgerufen wird?

Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus