【发布时间】:2012-06-03 11:49:52
【问题描述】:
我在这个 for 循环中做错了什么?我有变量$gGID,其中包含一些数字。我有另一个使用列表的顶部编号,即$ONEGID 变量。我想使用$ONEGID 与$gGID 中的列表进行匹配,如果匹配,则继续执行其他操作。
echo $ONEGID
116899029375914044550
我用
收集$gGID 中的内容
gGID=$(curl -A 'Mozilla/4.0' --silent "https://www.google.com/search?q=$Daniel%20Sandman%20plus.google.com" | grep -P -o '(?<=plus.google.com/)[^az/u]+(?=/)')
这就是$gGID 给我的..
echo $gGID
116899029375914044550
116899029375914044550
116899029375914044550
108176814619778619437
108176814619778619437
108176814619778619437
105237212888595777019
105237212888595777019
105237212888595777019
这是我用来匹配它的 for 循环。
for USERS in $gGID; do
if [ "$USERS" = "$ONEGID" ]; then
echo "More than one match"
else
echo "Just one match"
fi
done
我尝试了多种方法,但没有弄明白。我看不出我做错了什么。难道是我存储在$gGID 中的变量算作一个数字,这就是为什么?
【问题讨论】:
-
运行时会发生什么?为什么它不起作用?
-
@TimPote 它应该给出“不止一场比赛”,但给出“只有一场比赛”。就好像它没有一个一个地遍历数字。 “只有一场比赛”适用于没有任何比赛的情况。
-
您的
$gGID中有什么内容。这些没有被引用就无法打印new line。 -
@kev 哦...对不起,当然应该添加。
gGID=$(curl -A 'Mozilla/4.0' --silent "https://www.google.com/search?q=$Daniel%20Sandman%20plus.google.com" | grep -P -o '(?<=plus.google.com/)[^az/u]+(?=/)') -
你的意思是:
echo "$gGID"?没有引号,结果将是一行。
标签: bash if-statement for-loop