我有一个脚本,当前产生如下结果:
...
Processing !
Processing $6$vxVOJhOX$U2flG.WASP1fEsqNy1Q0S9YROgdNJi9TTC8Gn74Al4w03unxr4qtHeaeRl8sWsGLG4Om5WbUJVsqNaCD4t4tG.
Processing !
Processing $6$ehmLTmoj$VP72RBNibmjwngQxMrW0kiyax/wJHiV0ugv/8J2RJnCwNxTIBLGJ.A4t5ryZv6lQTyheoA6N0VianZC5QI7Rp1
Processing !
Processing !
...
我想仅使用 . 过滤掉条目!
。
我正在尝试以下操作,无论是否转义\!
:
while read -r line ; do
if ! [ \$line = \! ]; then
echo "Processing $line"
fi
done
如何检查变量是否包含单个!
?
答案1
- 您的示例输出行中有更多文本(“处理”),并且
- 您转义了美元符号
\$line
,防止变量扩展。
尝试:
while read -r line; do
if ! [ "$line" = "Processing !" ]; then
echo processing line "$line";
fi
done
或者,如果您的输入是假如通过示例脚本,然后$line
比较\!
:
while read -r line; do
if ! [ "$line" = \! ]; then
echo processing line "$line";
fi
done
或者也许更直接:
while read -r line; do
if [ "$line" != \! ]; then
echo processing line "$line";
fi
done