试图回到 ZSH 脚本中的 "Checkpoint"

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

在这里,我想回到第 1 行 (vared),以便用户可以输入更多命令。我在想这两个问题都类似于 VG 中的“检查点”,因为我基本上是在尝试返回到选定的点并能够从那里重新 运行 脚本。我想在 if 语句中重新粘贴整个内容,但我知道必须有更有效的方法。 任何帮助深表感谢 干杯, RCdS

您可能正在寻找无限循环。这是一个基于您的脚本之一的示例:

#!/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 手册的 Complex Commands section