#!/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/