gpt4 book ai didi

Shell 命令 - 基于命令输出的条件?

转载 作者:行者123 更新时间:2023-12-04 06:05:16 24 4
gpt4 key购买 nike

如果文本文件中不存在字符串,我将尝试运行一些 shell 命令。如果我将此行粘贴到命令行中,如果给我一个错误。

if [ $(cat textfile.txt | grep "search string") -eq "" ]; then; echo "some string"; fi;

错误:
-bash: [: -eq: unary operator expected

最佳答案

如果您使用 []为了进行比较,您需要使用 =而不是 -eq .您还需要一些报价。

if [ "$(cat textfile.txt | grep 'search string')" = "" ]; then; echo "some string"; fi;

请注意 grep可以将文件名作为参数,因此 cat是不必要的。也可以直接使用 grep的返回值: 如果未找到搜索字符串,grep 将返回 1。
if [ "$(grep 'search string' textfile.txt)" ]; then
echo "some string";
fi

更紧凑的方法是使用逻辑和 && .
grep "search string" textfile.txt && echo "some string"

关于Shell 命令 - 基于命令输出的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138489/

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