gpt4 book ai didi

bash - 条件表达式中的Bash语法错误

转载 作者:行者123 更新时间:2023-12-03 08:06:52 25 4
gpt4 key购买 nike

我正在尝试制作一个简单的bash脚本,该脚本将遍历包含IP地址的文本文件,
对它们执行一次ping操作,看看它们是否还活着。

到目前为止,这是我的工作:

#!/bin/bash

for ip in $(cat ips.txt); do
if [[ "1" == "$(ping -c 1 $ip | grep 'packets transmitted' | cut -d ' ' -f 4)"]]
echo $ip
fi
done

有什么建议?
谢谢!

最佳答案

这似乎可行:

#!/bin/bash
for ip in $(cat ips.txt); do
if [ "1" == "$(ping -c 1 $ip | grep 'packets transmitted' | cut -d ' ' -f 4)" ]; then
echo $ip
fi
done

您需要在 ; then语句之后添加 if [ ... ]( elif而不是 else也是一样),并且在该语句的最后括号和该语句的内容之间留一个空格。同样,仅使用单个括号似乎也可以正常工作,并且可能更便于携带(请参阅 here)。

在Bash 4.2.47上运行

关于bash - 条件表达式中的Bash语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24470867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com