尝试为 ping 制作 bash 脚本

Muh*_*yas 2 bash shell-script

下面的脚本不起作用。任何帮助,将不胜感激

for host in `cat db_hosts_imsi.txt` ; do "ping6 $host"; done
Run Code Online (Sandbox Code Playgroud)
-bash: ping6 2606:ae00:3001:8311:172:16:244:1d: command not found
-bash: ping6 2606:ae00:3001:8311:172:16:244:45: command not found
-bash: ping6 2606:ae00:3001:8311:172:16:244:54: command not found
Run Code Online (Sandbox Code Playgroud)

Gil*_*not 6

像这样:

while IFS= read -r host; do
    ping6 "$host"
done < db_hosts_imsi.txt
Run Code Online (Sandbox Code Playgroud)

主要问题是同时引用命令和参数。

并且要逐行读取文件,请始终使用while循环,而不是for循环。

http://mywiki.wooledge.org/BashFAQ/001

此外,该

`命令`

语法在 2020 年被弃用,取而代之的是形式

$(command)
Run Code Online (Sandbox Code Playgroud)

推荐使用最新的语法。$() 中的反斜杠处理不那么令人惊讶,而且 $() 更容易嵌套。见http://mywiki.wooledge.org/BashFAQ/082