Eu sou novo em bash programação de scripts.
Eu quero implementar um script bash 'deploymLog', que aceita como entrada um argumento de string (nome).
[root@localhost Desktop]# ./deploymLog.sh name
aqui eu quero passar o argumento string (nome) através da linha de comando
Como uma etapa inicial, preciso anexar o carimbo de data / hora atual junto com esta sequência de entrada a um arquivo de log, digamos Logone.txt
no diretório atual no formato abaixo:
[name]=[System time timestamp1]
Como isso é possível?
[[ -n "$name" ]]
parte está fazendo.Os argumentos da linha de comando do Shell são acessíveis via
$1
(o primeiro),$n
(o enésimo) ou$*
(todos os argumentos), portanto, seu script deve iniciar:Agora, o argumento do nome está acessível no script como
$name
.Para obter o registro de data
date(1)
e hora, use o comando e especifique o formato para que ele produza o formato desejado:Agora
$now
contém a data e hora atuais.Então você pode criar seu arquivo de log assim:
É melhor usar uma função shell para registrar suas mensagens, pois será mais fácil usar:
Observe que as funções do shell acessam seus próprios argumentos da mesma maneira que o script (via
$1
etc.)Portanto, o script inicial fica assim:
(observe que o arquivo de log não está no formato exato que você especificou; está em um formato melhor com o registro de data e hora no início de cada linha).
fonte
execute "bash deploymLog.sh seja qual for" e você terá o x.log com
fonte
name=$1
. A variável $ name nunca é usada, pois você produz apenas a string 'name' literalmente.name="$1"