gpt4 book ai didi

linux - 使用 [] 的参数太多

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:35 25 4
gpt4 key购买 nike

我正在尝试编写一个脚本来根据 wi-fi 强加一个静态 ip。当我尝试执行以下表达式时出现问题,输出告诉我参数太多。

[ $(cat /etc/dhcpcd.conf | grep 'interface wlan0') = 'interface wlan0' ]

虽然检查这个表达式,但它会给出所需的输出。

[ $(iwlist wlan0 scanning | grep  'ESSID:"Wi-Fi 61"') = 'ESSID:"Wi-Fi 61"' ]

谁能告诉我为什么第一个表达式不起作用而第二个表达式起作用,因为根据我的理解,它们具有相似的结构。

最佳答案

Mihir 的回答解释了发生了什么。我发现更清洁的替代解决方案是使用 grep 命令的返回码作为 if 条件。如果返回值为 0,则评估结果太真实。如果该值为其他任何值,则为 false

因此您不会使用 -q 选项从 grep 获得输出。

if grep -q 'interface wlan0' /etc/dhcpcd.conf
then
# Do something
fi
if iwlist wlan0 scanning | grep -q 'ESSID:"Wi-Fi 61"'
then
# Do something
fi

关于linux - 使用 [] 的参数太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57729160/

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