Pasar argumentos de línea de comando al script bash

Pregunta:

Soy nuevo en la programación de scripts 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?

Respuesta:

$> cat ./deploymLog.sh 
#!/bin/bash

name=$1
log_file="Logone.txt"

if [[ -n "$name" ]]; then
    echo "$1=$( date +%s )" >> ${log_file}
else
    echo "argument error"
fi

El primer argumento de una línea de comando se puede encontrar con el parámetro posicional $1 . [[ -n "$name" ]] prueba para ver si $name no está vacío. date +%s devuelve la marca de tiempo actual en tiempo Unix. El operador >> se usa para escribir en un archivo agregando a los datos existentes en el archivo.

$> ./deploymLog.sh tt

$> cat Logone.txt 
tt=1329810941

$> ./deploymLog.sh rr

$> cat Logone.txt 
tt=1329810941
rr=1329810953

Para obtener una marca de tiempo más legible, puede jugar con argumentos de date .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım