Saltar al contenido

Parámetros de script en Bash

Solución:

Los argumentos que proporcione a un bashscript aparecerán en las variables $1 y $2 y $3 donde el número se refiere al argumento. $0 es el comando en sí.

Los argumentos están separados por espacios, por lo que si proporciona el -from y -to en el comando, también terminarán en estas variables, así que para esto:

./ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt

Obtendrás:

$0    # ocrscript.sh
$1    # -from
$2    # /home/kristoffer/test.png
$3    # -to
$4    # /home/kristoffer/test.txt

Podría ser más fácil omitir el -from y el -to, igual que:

ocrscript.sh /home/kristoffer/test.png /home/kristoffer/test.txt

Entonces tendrás:

$1    # /home/kristoffer/test.png
$2    # /home/kristoffer/test.txt

La desventaja es que tendrás que suministrarlo en el orden correcto. Hay bibliotecas que pueden facilitar el análisis de argumentos con nombre en la línea de comandos, pero generalmente para scripts de shell simples, debe usar la forma fácil, si no hay problema.

Entonces puedes hacer:

/usr/local/bin/abbyyocr9 -rl Swedish -if "$1" -of "$2" 2>&1

Las comillas dobles alrededor del $1 y el $2 no siempre son necesarios, pero se recomiendan, porque algunas cadenas no funcionarán si no las pone entre comillas dobles.

Si no está completamente comprometido con el uso de “desde” y “hasta” como nombres de opciones, es bastante fácil implementar esto usando getopts:

while getopts f:t: opts; do
   case ${opts} in
      f) FROM_VAL=${OPTARG} ;;
      t) TO_VAL=${OPTARG} ;;
   esac
done

getopts es un programa que procesa argumentos de línea de comando y los analiza convenientemente por usted.

f:t: especifica que está esperando 2 parámetros que contienen valores (indicados por dos puntos). Algo como f:t:v dice que -v solo se interpretará como una bandera.

opts es donde se almacena el parámetro actual. los case declaración es donde procesará esto.

${OPTARG} contiene el valor que sigue al parámetro. ${FROM_VAL} por ejemplo obtendrá el valor /home/kristoffer/test.png si ejecutó su script como:

ocrscript.sh -f /home/kristoffer/test.png -t /home/kristoffer/test.txt

Como sugieren los demás, si es la primera vez que escribe scripts bash, debería leer algunos conceptos básicos. Este fue solo un tutorial rápido sobre cómo getopts obras.

Usa las variables "$1", "$2", "$3" y así sucesivamente para acceder a los argumentos. Para acceder a todos ellos puede utilizar "[email protected]", o para obtener el recuento de argumentos $# (puede ser útil para comprobar si hay demasiados argumentos o muy pocos).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *