小编Bul*_*net的帖子

反引号作为 for 循环中的单词会导致奇怪的行为

我们的办公室有一些 DNS 问题,所以我尝试通过 IP 地址查找我们的一些服务器:

for i in `seq 14 15`; do echo "10.10.10.$i" ;  wget "10.10.10.$i"  ; done
Run Code Online (Sandbox Code Playgroud)

期望 wget 将被调用 10.10.10.14 和 10.10.10.15

相反,wget的被称为有10.10.10.(some weird string which appears to be the expansion of $PS1)10.10.10.$10.10.10.for,等。

如果我只是

for i in `seq 14 15`; do echo "10.10.10.$i" ;  done
Run Code Online (Sandbox Code Playgroud)

那么结果似乎是预期的:

10.10.10.14
10.10.10.15
Run Code Online (Sandbox Code Playgroud)

然而,这是一种错觉:

$ for i in `seq 14 15` ; do echo  $i ; done | hexdump -C
00000000  1b 5d 30 3b 43 …
Run Code Online (Sandbox Code Playgroud)

shell bash

6
推荐指数
1
解决办法
478
查看次数

标签 统计

bash ×1

shell ×1