在bash中进行字符串比较。 [[: 未找到
我正在比较bash中的字符串。 我已经找到了关于如何在stackoverflow上做的答案。 在我尝试的脚本中,我使用了Adam在提到的问题中提交的代码:
#!/bin/bash
string='My string';
if [[ "$string" == *My* ]]
then
echo "It's there!";
fi
needle='y s'
if [[ "$string" == *"$needle"* ]]; then
echo "haystack '$string' contains needle '$needle'"
fi
我也尝试了从第二篇文章中可以找到的ubuntuforums的方法
if [[ $var =~ regexp ]]; then
#do something
fi
在这两种情况下,我收到错误:
[[: not found
我究竟做错了什么?
[[
是bash-builtin。] 你的/bin/bash
似乎不是真正的bash。
你如何运行你的脚本? 如果你这样做
$ sh myscript
你应该试试:
$ bash myscript
或者,如果脚本是可执行的:
$ ./myscript
sh和bash是两个不同的壳。 在第一种情况下,您将脚本作为参数传递给sh解释器,而在第二种情况下,您将在第一行中决定使用哪个解释器。
是脚本中的第一行:
#!/bin/bash
要么
#!/bin/sh
sh shell产生这个错误信息,而不是bash
链接地址: http://www.djcxy.com/p/36195.html