【发布时间】:2018-05-30 21:39:25
【问题描述】:
我在这里定义了变量以稍微缩短逻辑。 wget 工作正常(下载正确的文件)并且 tar.gz 的 grepping 在 wget.log 中工作
问题是与另一个文件的匹配!
基本上,如果它在黑名单上,我希望它跳过!
var1=https://somewebsite.com/directory
line1=directory
sudo wget -O wget.log https://somewebsite.com/$line1/releases
if grep -q "tar.gz" wget.log | "$var1" -ne grep -q
"https://somewebsite.com/$line1" banned; then
echo "Good Job!"
else
echo "Skip!"
fi
【问题讨论】:
-
您到底在使用哪个外壳?
sh通常是指与 POSIX 兼容的 shell,但bash通常是 Linux 系统上的默认 shell。我个人更喜欢fish。无论如何,它们都在语法上有所不同,即使只是略有不同。此外,这些都不取决于底层的操作系统,因此您应用的linux标签是错误的。 -
"$var1" -ne grep -q应该是什么意思,为什么要将第一个grep的输出传递给它? -
grep -q不会产生任何输出,因此将其输出通过管道传递给另一个命令是没有意义的。 -
您能否包含
wget.log和banned文件的样本?如果您的问题包含MCVE,则诊断和制定解决方案会容易得多。 -
wget.log 将只是一个大的信息转储,搜索它是否包含任何 tar.gz 文件,第二个文件“禁止”只是一个包含不应检查的完整链接的文件再次反对。也对不正确的标签感到抱歉:) 仍在学习关于放置东西的定义。