Аргументы командной строки оболочки доступны через $1
(первый), $n
(n-й) или $*
(все аргументы), поэтому ваш скрипт должен запуститься:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
Теперь аргумент name доступен из скрипта как $name
.
Чтобы получить метку времени, используйте date(1)
команду и задайте ей спецификатор формата, чтобы она вырабатывала нужный формат:
now=$(date +%Y%m%d%H%M%S)
Теперь $now
содержит текущую дату и время.
Таким образом, вы можете создать свой файл журнала следующим образом:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
Вам лучше использовать функцию оболочки для регистрации ваших сообщений, так как это будет легче использовать:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
Обратите внимание, что функции оболочки обращаются к своим собственным аргументам так же, как и к сценарию (через $1
и т. Д.)
Итак, начальный скрипт выглядит так:
#!/bin/bash
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
now=$(date +%Y%m%d%H%M%S)
logfile=/path/to/log/file/mylogfile.$now
logit name = $name
(обратите внимание, что файл журнала не в том формате, который вы указали; он лучше, с меткой времени в начале каждой строки).
[[ -n "$name" ]]
часть.