Bash脚本不会循环退出

泰尔马兹

我已经在HP / UX的以下脚本中运行并获得了输出:

Exiting #1
Exiting #2

但我希望输出:

Exiting #1

脚本文件:

data="aaa; bbb; ccc"

echo $data | while IFS=';' read -ra array; do
    echo "Exiting #1"
    exit -1
done


echo "Exiting #2"

exit 0

我怎么解决这个问题?谢谢。

user000001

由于管道的原因,循环中的命令在子Shell中运行。当您调用exit时,仅终止子外壳,而不终止父进程。

您可以使用shopt -s lastpipe,通过使用流程替换来克服这一问题

while IFS=';' read -ra array; do
    echo "Exiting #1"
    exit -1
done < <(echo "$data")

或使用here字符串

while IFS=';' read -ra array; do
    echo "Exiting #1"
    exit -1
done <<< "$data"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本不会在输入命令中退出

来自分类Dev

Bash脚本不会在ctrl d上退出

来自分类Dev

执行bash脚本循环而不会错误退出

来自分类Dev

SQL Backup&Dropbox Uploader bash脚本不会退出并占用资源

来自分类Dev

VBS脚本不会进入循环

来自分类Dev

Bash脚本不会编译LESS

来自分类Dev

Bash脚本不会以Ctrl + C终止

来自分类Dev

Bash脚本不会更改目录

来自分类Dev

回送控制台脚本不会退出

来自分类Dev

Strongloop自定义脚本不会退出

来自分类Dev

Strongloop自定义脚本不会退出

来自分类Dev

确保即使子脚本退出,父bash脚本也不会退出

来自分类Dev

为什么此bash脚本不退出?

来自分类Dev

启动python脚本的Bash脚本不会自行停止

来自分类Dev

Bash脚本循环返回而不是退出

来自分类Dev

在while循环中退出bash脚本

来自分类Dev

.sh脚本不会让我循环浏览文件

来自分类Dev

脚本不会运行

来自分类Dev

Bash脚本(使用Java命令)不会退出(脚本2)

来自分类Dev

杀死bash脚本不会杀死子进程

来自分类Dev

Bash脚本不会解释变量中的变量

来自分类Dev

Bash 脚本不会解释变量中的变量

来自分类Dev

满足条件时,Bash 脚本不会继续

来自分类Dev

TCSH脚本不退出

来自分类Dev

在os.system中执行exe后,Python脚本不会让我退出

来自分类Dev

不会退出执行循环

来自分类Dev

脚本不会转到后台

来自分类Dev

线程脚本不会终止

来自分类Dev

脚本不会单独删除