我最近正在查看一些让我感到困惑的代码,因为它可以工作,但我没想到它会如此。代码简化为这个例子
#!/bin/bash
for var;
do
echo "$var"
done
Run Code Online (Sandbox Code Playgroud)
使用命令行参数运行时会打印它们
$ ./test a b c
a
b
c
Run Code Online (Sandbox Code Playgroud)
这就是(对我而言)出乎意料的。为什么这不会导致错误,因为var
是 undefined ?使用这被认为是“良好做法”吗?