我有一个名为 bash 函数的文件ping
,它只有一个函数:
#!/usr/bin/env bash
ping() {
ping -c 1 $i.local
}
该文件由另一个名为 bash 文件加载pinger
,并尝试使用 ping 功能联系多个远程计算机
#!/usr/bin/env bash
. /home/ping #load ping function
REMOTES=('remote1' 'remote2' 'remote3')
for i in "${REMOTES[@]}"; do
ping $i
done
当我运行时./pinger
它会挂起,直到我CTRL-C
.如果我手动输入ping -c 1 remote1.local
命令行,我就能够成功 ping 远程计算机。剧本问题出在哪里?
编辑:我发现问题在于将函数命名为“ping”。当函数被命名为其他名称时,它似乎工作正常。
答案1
我发现问题在于将函数命名为“ping”。当函数被命名为其他名称时,它似乎工作正常。
#!/usr/bin/env bash
pingRemote() {
ping -c 1 $i.local
}
。
#!/usr/bin/env bash
. /home/ping #load ping function
REMOTES=('remote1' 'remote2' 'remote3')
for i in "${REMOTES[@]}"; do
pingRemote $i
done