簡體   English   中英

試圖 go 回到 ZSH 腳本中的“檢查點”

[英]Trying to go back to a “Checkpoint” in ZSH script

好的,我正在 ZSH 中制作一個程序,並且制作了所有使用命令運行的客戶端腳本

我有兩個問題,我需要像在電子游戲中一樣設置“檢查點”。

第一個問題:

A="LUNGOTEVEREMARZIO-UMBERTO (RM-CTR54)"
B="LUNGOTEVEREMARZIO-UMBERT1 (RM-CTR55)"
vared -p 'Which device would you like to access? ' -c tmp
X=$tmp
if [[ $tmp == 'A' ]]; then
    F=${A}
elif [[ $tmp == 'B' ]]; then
  F=${B}
else
  echo 'Error, CODE176, Variable not found. Please upload logStamp.txt to Ranieri#0001 on Discord'
  log start(./logstamp.txt)
sleep 2
echo Selected Option ${tmp}: ${F}

在這里,我希望在設置變量后繼續執行第 13 行,但是,在設置變量后,腳本就會停止(我理解它為什么這樣做,我只需要一種方法來停止它。這里是問題 2 :

vared -p 'Awaiting Commands >> ' -c response
if [[ $response == 'GG stop' ]]; then
  echo '${sTT}'
  STATUS='${stopResponse}'
  
elif [ $response == 'GG start' ]]; then
echo '${srTT}'
STATUS='${startResponse}'
./TrStart.js
    
fi

在這里,我想將 go 回到第 1 行(vared),以便用戶可以輸入更多命令。 我認為這兩個問題都類似於 VG 中的“檢查點”,因為我基本上是在嘗試將 go 返回到選定點並能夠從那里重新運行腳本。 我想只是在 if 語句中重復整個事情,但我知道必須有一種更有效的方法。 非常感謝任何幫助 干杯,RCdS

您可能正在尋找一個無限的 while 循環。 這是一個基於您的腳本之一的示例:

#!/bin/zsh
while true; do
  vared -p 'Awaiting Commands >> ' -c response
  if [[ $response == 'GG stop' ]]; then
    echo 'Stop'
  elif [[ $response == 'GG start' ]]; then
    echo 'Start'
  fi
  response=''
done

請參閱 Zsh Shell 手冊的復雜命令部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM