script programar programacion pasar parametros español ejemplos comandos comando linux bash shell jmeter scripting-language

programacion - programar shell script linux



Cómo pasar parámetros usando argumentos de línea de comandos en script de shell (1)

Como read lee de stdin, debe pasar los nombres de archivo en stdin:

{ echo "file.jmx"; echo "file.jtl"; } | ./script.sh start

Usar un documento aquí puede ser más ordenado:

./script.sh start <<END_INPUT file.jmx file.jtl END_INPUT

Un poco de revisión del código: si el uso solo tiene un único parámetro, "inicio" o "detener", no necesita el ciclo while:

#!/bin/sh do_start_stuff() { ... } do_stop_stuff() { ... } case "$1" in start) do_start_stuff;; stop) do_stop_stuff;; *) echo "Usage: $0 {start|stop}"; exit 1;; esac

Para reescribir su script para tomar todos los parámetros:

#!/bin/sh usage() { echo "Usage $0 {start ...|stop}" # provide more info about arguments for the start case # provide an example usage } case "$1" in stop) do_stop_stuff ;; start) shift if [ "$#" -ne 4 ]; then usage; exit 1; fi jmeter.sh -n -t "$1" "$2" -l "$3" "$4" ;; *) usage ;; esac

Soy nuevo en el script de shell y estoy trabajando en scripts de shell para jmeter. Hasta el momento para ejecutar un script jmeter, he escrito mi script de shell como a continuación:

#! bin/sh start(){ echo "Please enter the file name .jmx extension" read file echo "Please enter the log file name .jtl extension" read log_file jmeter.sh -n -t $file -l $log_file } while [ "$1" != "" ]; do case "$1" in start ) start ;; *) echo $"Usage: $0 {start|stop}" exit 1 esac shift done

Tengo un método de detención para finalizar el proceso. Aquí, para este script, le pido al usuario que introduzca .jmx fileName y .jtl fileName en líneas diferentes. Pero quiero que el usuario pueda pasar .jmx fileName y .jtl fileName en el momento en que escribe el comando para ejecutar el script.

ejemplo: $ ./script.sh .jmx fileName .jtl fileName , entonces, la secuencia de comandos debería ejecutarse.

No sé cómo hacerlo. ¿Puede ayudarme alguien, por favor?