Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

326
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!