Jestem nowy w programowaniu skryptów bash.
Chcę zaimplementować skrypt bash „deploymLog”, który przyjmuje jako argument jeden ciąg znaków (nazwę).
[root@localhost Desktop]# ./deploymLog.sh name
tutaj chcę przekazać argument (nazwę) ciągu poprzez linię poleceń
Na początku muszę dołączyć bieżący znacznik czasu wraz z tym ciągiem wejściowym do pliku dziennika powiedzmy Logone.txt
w bieżącym katalogu w poniższym formacie:
[name]=[System time timestamp1]
Jak to jest możliwe?
[[ -n "$name" ]]
robi ta część.Argumenty linii poleceń powłoki są dostępne za pośrednictwem
$1
(pierwszego),$n
(n-tego) lub$*
(wszystkich argumentów), więc skrypt powinien się uruchomić:Teraz argument nazwy jest dostępny ze skryptu jako
$name
.Aby uzyskać znacznik czasu, użyj
date(1)
polecenia i nadaj mu specyfikator formatu, aby wygenerował żądany format:Teraz
$now
zawiera aktualną datę i godzinę.Możesz więc utworzyć plik dziennika w ten sposób:
Lepiej jest używać funkcji powłoki do rejestrowania wiadomości, ponieważ będzie łatwiejsza w użyciu:
Zauważ, że funkcje powłoki mają dostęp do własnych argumentów w taki sam sposób, jak skrypt (przez
$1
itp.)Tak więc początkowy skrypt wygląda następująco:
(zwróć uwagę, że plik dziennika nie ma dokładnie określonego formatu; jest lepszy, z datownikiem na początku każdej linii).
źródło
uruchom „bash deploymLog.sh cokolwiek”, a otrzymasz x.log z
źródło
name=$1
. Zmienna $ name nigdy nie jest używana, ponieważ dosłownie podajesz tylko ciąg „name”.name="$1"