Soy nuevo en la programación de script bash.
Quiero implementar un script bash 'deploymLog', que acepta como entrada un argumento de cadena (nombre).
[root@localhost Desktop]# ./deploymLog.sh name
aquí quiero pasar el argumento de cadena (nombre) a través de la línea de comando
Como paso inicial, necesito agregar la marca de tiempo actual junto con esta cadena de entrada a un archivo de registro, digamos Logone.txt
en el directorio actual en el siguiente formato:
[name]=[System time timestamp1]
¿Como es posible?
[[ -n "$name" ]]
está haciendo la parte.Se puede acceder a los argumentos de la línea de comandos de Shell a través de
$1
(el primero),$n
(el enésimo) o$*
(todos los argumentos), por lo que su script debe comenzar:Ahora se puede acceder al argumento de nombre desde el script como
$name
.Para obtener la marca de tiempo, use el
date(1)
comando y asígnele un especificador de formato para que produzca el formato que desea:Ahora
$now
contiene la fecha y hora actuales.Para que pueda crear su archivo de registro así:
Es mejor usar una función de shell para registrar sus mensajes, ya que será más fácil de usar:
Tenga en cuenta que las funciones de shell acceden a sus propios argumentos de la misma manera que el script (a través de
$1
etc.)Entonces el guión inicial se ve así:
(tenga en cuenta que el archivo de registro no está en el formato exacto que especificó; está en uno mejor con la marca de tiempo al comienzo de cada línea).
fuente
ejecute "bash deploymLog.sh whatever", y obtendrá x.log con
fuente
name=$1
. La variable $ name nunca se usa, ya que solo genera la cadena 'nombre' literalmente.name="$1"