我正试图在if条件:http://linuxconfig.org/bash-printf-syntax-basics-with-examples
上遵循这些解释我的代码是
#!/bin/bash
result="test"
if [$result = "test"];
then printf "ok"
fi
但我有以下错误: 第4行:[测试:命令未找到
答案 0 :(得分:1)
[
是一个命令。不仅它和它的第一个参数之间,还有每个参数之间必须有空格。
答案 1 :(得分:1)
在Capybara::Webkit.configure do |config|
config.block_unknown_urls # <--- this configuration would be lost if you didn't use .merge below
end
class WebkitStderrWithQtPluginMessagesSuppressed
IGNOREABLE = Regexp.new( [
'CoreText performance',
'userSpaceScaleFactor',
'Internet Plug-Ins',
'is implemented in bo'
].join('|') )
def write(message)
if message =~ IGNOREABLE
0
else
puts(message)
1
end
end
end
Capybara.register_driver :webkit_with_qt_plugin_messages_suppressed do |app|
Capybara::Webkit::Driver.new(
app,
Capybara::Webkit::Configuration.to_hash.merge( # <------ maintain configuration set in Capybara::Webkit.configure block
stderr: WebkitStderrWithQtPluginMessagesSuppressed.new
)
)
end
Capybara.javascript_driver = :webkit_with_qt_plugin_messages_suppressed
(以及POSIX shell)中,bash
等同于test命令,除了它需要[
作为最后一个参数。您需要为正确执行token recognition的shell分隔命令及其参数。
在您的情况下,]
认为bash
是一个命令,而不是带有参数 test 的命令[test
。你需要:
[
(请注意,您需要引用变量以防止#!/bin/bash
result="test"
if [ "$result" = "test" ]; then
printf "ok"
fi
运算符出现在其中)