Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

325
Vistas
¿Cómo puedo usar la declaración de caso de cambio en scripts de bash para realizar diferentes operaciones?

Tengo este script que actualmente está iniciando la interfaz gráfica de usuario de una herramienta. Quiero agregar otra funcionalidad en el caso del interruptor, que es matar la herramienta si es necesario. En este momento tengo diferentes scripts haciendo esto. Quiero integrar las partes y piezas.

Actualmente, el script que tengo se ve así:

 #!/bin/bash tart_array=($1) ip=() tarts=() for i in ${tart_array[@]}; do echo "Tart #: $i" case "$i" in 1) IP=10.171.0.10 ;; 2) IP=10.171.0.11 ;; 3) IP=10.171.0.12 ;; 4) IP=10.171.0.13 ;; 5) IP=10.171.0.14 ;; *) echo "Invalid TARTS '$i'" >&2; exit ;; esac ip+=(${IP=[i]}) # echo "$ip" tarts=(${tart_array[@]}) # echo "$tarts" echo " ---- Launching Tart $i ---- " sshpass -p "tart123" ssh -Y -X -L 5900:$IP:5901 tarts@$IP <<EOF1 export DISPLAY=:1 gnome-terminal -e "bash -c \"pwd; cd /home/tarts; pwd; ./launch_tarts.sh exec bash\"" exit EOF1 done

Al igual que Launching TARTS , quiero agregar Killing TARTS en la declaración de caso de cambio anterior. Solo por ejemplo para matar la herramienta que estoy haciendo:

 echo "Killing Tart $i" sshpass -p "tart123" ssh -tt -o StrictHostKeyChecking=no tarts@10.171.0.10 <<EOF . ./tartsenvironfile.8.1.1.0 nohup yes | kill_tarts mcgdrv & nohup yes | kill_tarts server & pkill -f traf pkill -f terminal-server exit EOF

¿Puede alguien guiarme sobre cómo puedo integrar la funcionalidad de lanzamiento y eliminación en mi secuencia de comandos usando el mismo caso de cambio?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede utilizar funciones. Puede colocar las direcciones IP en una matriz, utilizando el número de inicio correspondiente como índice. También puede aprovechar los conjuntos de caracteres si necesita validar 1-5.

Aquí hay un resumen aproximado de lo que creo que estás consiguiendo. Usar como: tart-tool kill 1 3 2 . No entiendo completamente tu objetivo, pero tal vez te dé algunas ideas.

 #!/bin/bash launch_tart () { local tart=$1 local ip=${ip[tart]} echo "launching tart $tart…" sshpass tarts@$ip # etc } kill_tart () { local tart=$1 local ip=${ip[tart]} echo "killing tart $tart…" sshpass tarts@$ip # etc } ip[1]=10.171.0.10 ip[2]=10.171.0.11 # etc case $1 in kill) function=kill_tart;; launch) function=launch_tart;; *) exit 1 esac shift for tart in "$@"; do [[ "$tart" == [1-5] ]] || { echo error >&2; exit 1; } $function $tart done
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda