bash,if条件问题

时间:2015-09-28 03:48:16

标签: string bash if-statement

我正试图在if条件:http://linuxconfig.org/bash-printf-syntax-basics-with-examples

上遵循这些解释

我的代码是

#!/bin/bash

result="test"
if [$result = "test"];
then printf "ok"
fi

但我有以下错误: 第4行:[测试:命令未找到

2 个答案:

答案 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 运算符出现在其中)