gpt4 book ai didi

shell - 为什么这个 shell 脚本输出如此​​奇怪

转载 作者:行者123 更新时间:2023-12-02 00:39:09 24 4
gpt4 key购买 nike

#!/bin/bash
echo "===========3333333====="

if [ $0 == "test" ] || $0 == "all" ];then
echo "---"
fi

无限循环输出:

===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====
===========3333333=====

虽然我知道错误是缺少方括号 if [ $0 == "测试"] || [ $0 == "全部"];然后但为什么输出这样???

最佳答案

考虑行 if [ $0 == "test"] || $0 ==“全部”]

其形式为if cmd1 || cmd2,其中 cmd1 是 [ $0 == "test ]cmd2 是 $0 == "all"]

第二个命令使用参数 ==all] 调用脚本。所以你有一个递归。

请记住,[ 不是 shell 语法的一部分。它只是一个具有奇怪功能的命令,要求其最后一个参数为 ]

关于shell - 为什么这个 shell 脚本输出如此​​奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43252984/

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