为什么大括号扩展在这条鱼 (shell) 案例中不像循环那样工作?
Why does brace expansion not work like a loop in this fish (shell) case?
我希望这些命令的行为相同:
# 1
python3 scripts/{01,02}*.py
# 2
for script in scripts/{01,02}*.py; python3 $script; end
#1 returns 单行 if 运行 和 echo
而不是 #2 returns 两个让我相信这是有区别的。第二个版本有效,第一个版本仅 运行 第一个脚本。
这是为什么?
我不熟悉 fish
但乍一看,在第一种情况下,您是 运行 一个 python
解释器实例,将脚本作为第一个参数传递给执行并作为第二个参数(传递给第一个脚本的第一个参数,它可能会忽略)第二个脚本的名称。
在第二种情况下,您是 运行 两个 python
解释器的实例,每个实例都有要执行的脚本的名称。
结果不同也就不足为奇了。
我希望这些命令的行为相同:
# 1
python3 scripts/{01,02}*.py
# 2
for script in scripts/{01,02}*.py; python3 $script; end
#1 returns 单行 if 运行 和 echo
而不是 #2 returns 两个让我相信这是有区别的。第二个版本有效,第一个版本仅 运行 第一个脚本。
这是为什么?
我不熟悉 fish
但乍一看,在第一种情况下,您是 运行 一个 python
解释器实例,将脚本作为第一个参数传递给执行并作为第二个参数(传递给第一个脚本的第一个参数,它可能会忽略)第二个脚本的名称。
在第二种情况下,您是 运行 两个 python
解释器的实例,每个实例都有要执行的脚本的名称。
结果不同也就不足为奇了。