Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在字符串中未检测到空格_Bash - Fatal编程技术网

Bash 在字符串中未检测到空格

Bash 在字符串中未检测到空格,bash,Bash,我使用dig查找子域的IP并将其分配给名为string的变量。此子域有2个IP,IP之间用空格分隔。我想说,如果字符串中有空格,就宣布它。我使用以下代码: #!/bin/bash string=$(dig +short google.com) echo $string if [[ "$string" =~ \ |\' ]] # slightly more readable: if [[ "$string" =~> then echo "Matches" else ech

我使用dig查找子域的IP并将其分配给名为string的变量。此子域有2个IP,IP之间用空格分隔。我想说,如果字符串中有空格,就宣布它。我使用以下代码:

#!/bin/bash
string=$(dig +short google.com)
echo $string
if [[ "$string" =~ \ |\' ]]    #  slightly more readable: if [[ "$string" =~>
then
   echo "Matches"
else
   echo "No matches"
fi

虽然“string”中有空格,但表示“no matches”。我还尝试了换行符(\n),也没有检测到。怎么了?

条目之间用换行符分隔。您应该习惯于引用您所引用的字符串
echo

中的case$string
*$'\n'*)回显“匹配”;;
*)回声“没有匹配”;;
以撒
诊断消息可能应转到标准错误(添加重定向到
&2


此外,shebang行中的
#
也很重要;文件的前两个字节必须正好是
#以使此构造正常工作。

条目用换行符分隔。您应该习惯于引用您所引用的字符串
echo

中的case$string
*$'\n'*)回显“匹配”;;
*)回声“没有匹配”;;
以撒
诊断消息可能应转到标准错误(添加重定向到
&2


此外,shebang行中的
#
也很重要;文件的前两个字节必须正好是
#
以使此构造正常工作。

使用
host
可能比使用
dig
更好,因为前者提供一个shell返回代码来指示成功或失败:

如果host example.com>/dev/null
然后
回声“匹配”
其他的
回显“不匹配”
fi

使用
host
可能比使用
dig
更好,因为前者提供一个shell返回代码来指示成功或失败:

如果host example.com>/dev/null
然后
回声“匹配”
其他的
回显“不匹配”
fi

那不是空格,那是换行符。@GordonDavisson我试过换行符,\n也没有检测到它使用
$'\n'
,而不是
\n
,来匹配换行符。第一步引用字符串:用
echo“$string”
替换
echo$string
,这不是空格,这是一个换行符。@GordonDavisson我试过换行符,\n也没有检测到它。使用
$'\n'
,而不是
\n
,来匹配换行符。第一步引用字符串:用
回音“$string”
替换
回音“$string”
如果[[“$string”=*$'\n'*]]
(在bash中,所以一定要修复shebang)。是的,我只是觉得
case
的噪音比较小。有关
echo
为什么将换行符显示为空格的更多信息,请参见如果[[“$string”=*$'\n'*]](在bash中,一定要修复shebang),也可以使用
。是的,我发现
大小写
的噪音更小。有关
回音
将换行符显示为空格的原因的更多信息,请参阅