gpt4 book ai didi

linux - 执行错误的 shell 命令卡住时如何恢复?

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:50 32 4
gpt4 key购买 nike

我在 win7 64 位中使用 Git Bash 2.9.0-64 位。这是我的shell代码

function sum1_x(){
a=$1
while [ $a -ge 1 ]; do
sum=$[$sum + $a]
a=$[$a - 1]
done

echo $sum
}

sum $1

在 Git Bash 中,我的类型历史如下:

wen@PC-WEN MINGW64 /d/git/ (dev)
$sh sum1_x.sh
exit
:q

quit
quit()
exit()

在我输入 sh sum1_x.sh 后,我无法再执行任何 shell 命令。我尝试了很多命令,如图所示。我知道我的脚本中有错误,但我怎样才能回到执行shell脚本遇到这种问题?我现在无能为力。

最佳答案

你的脚本有几个问题:

  1. 你有函数 sum1_x 但你正在调用 sum $1
  2. 你没有检查输入值是否存在,因为它你陷入了无限循环

这是检查输入参数是否存在的更正脚本:

function sum1_x(){
a=$1
while [ $a -ge 1 ]; do
sum=$[$sum + $a]
a=$[$a - 1]
done

echo $sum
}

if [ -z "$1" ]; then # check that input parameter is exists
echo "No input"
else
sum1_x $1
fi

如何停止程序:

  1. Ctrl + 'c'
  2. 打开新的mingw,通过ps -aux | 找到progrman的pid | grep "sum1_x.sh"
    然后用kill pid杀掉程序

关于linux - 执行错误的 shell 命令卡住时如何恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38499689/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com