Я новичок в программировании сценариев Bash.
Я хочу реализовать сценарий bash 'deploymLog', который принимает в качестве входных данных один строковый аргумент (имя).
[root@localhost Desktop]# ./deploymLog.sh name
здесь я хочу передать строковый аргумент (имя) через командную строку
В качестве начального шага мне нужно добавить текущую метку времени вместе с этой входной строкой в файл журнала, скажем, Logone.txt
в текущем каталоге в следующем формате:
[name]=[System time timestamp1]
Как это возможно?
[[ -n "$name" ]]
часть.Аргументы командной строки оболочки доступны через
$1
(первый),$n
(n-й) или$*
(все аргументы), поэтому ваш скрипт должен запуститься:Теперь аргумент name доступен из скрипта как
$name
.Чтобы получить метку времени, используйте
date(1)
команду и задайте ей спецификатор формата, чтобы она вырабатывала нужный формат:Теперь
$now
содержит текущую дату и время.Таким образом, вы можете создать свой файл журнала следующим образом:
Вам лучше использовать функцию оболочки для регистрации ваших сообщений, так как это будет легче использовать:
Обратите внимание, что функции оболочки обращаются к своим собственным аргументам так же, как и к сценарию (через
$1
и т. Д.)Итак, начальный скрипт выглядит так:
(обратите внимание, что файл журнала не в том формате, который вы указали; он лучше, с меткой времени в начале каждой строки).
источник
запустите "bash deploymLog.sh", и вы получите x.log с
источник
name=$1
. Переменная $ name никогда не используется, поскольку вы выводите только строку «name» буквально.name="$1"