字符串变量和字符串的比较在 shell 脚本中抛出错误
Comparison of a string variable and a string is throwing error in shell script
我正在编写一个 shell 小脚本,用于将服务器日志备份到亚马逊。我们有多个服务器 运行 用于生产。所以我写了一个脚本来动态检测服务器并进行备份。但是我在比较两个字符串时遇到了一个问题。我会在下面给出我写的代码片段和错误。
test.sh
host="$(hostname)"
if [ "$host" == "server1-myapp.com" ]; then
function_1 $host
elif [ "$host" == "server2-myapp.com" ]; then
function_2 $host
elif [ "$host" == "server3-myapp.com" ]; then
function_3 $host
fi
function_1 () {
echo "host name is "
}
function_2 () {
echo "host name is "
}
function_3 () {
echo "host name is "
}
但是当 运行 test.sh as sh test.sh 我得到以下 error .
test.sh: 2: [: server1-myapp.com: unexpected operator
test.sh: 4: [: server1-myapp.com: unexpected operator
test.sh: 6: [: server1-myapp.com: unexpected operator
我尝试了不同的方法来匹配两个字符串,一个是变量,另一个是内联字符串,它不能正确匹配字符串,有人可以帮助我吗,我有点卡住了。
要将 shell 中的字符串与 [ ]
运算符进行比较,它使用 =
而不是 ==
。这将有效:
if [ "$host" = "server1-myapp.com" ]; then
我正在编写一个 shell 小脚本,用于将服务器日志备份到亚马逊。我们有多个服务器 运行 用于生产。所以我写了一个脚本来动态检测服务器并进行备份。但是我在比较两个字符串时遇到了一个问题。我会在下面给出我写的代码片段和错误。
test.sh
host="$(hostname)"
if [ "$host" == "server1-myapp.com" ]; then
function_1 $host
elif [ "$host" == "server2-myapp.com" ]; then
function_2 $host
elif [ "$host" == "server3-myapp.com" ]; then
function_3 $host
fi
function_1 () {
echo "host name is "
}
function_2 () {
echo "host name is "
}
function_3 () {
echo "host name is "
}
但是当 运行 test.sh as sh test.sh 我得到以下 error .
test.sh: 2: [: server1-myapp.com: unexpected operator
test.sh: 4: [: server1-myapp.com: unexpected operator
test.sh: 6: [: server1-myapp.com: unexpected operator
我尝试了不同的方法来匹配两个字符串,一个是变量,另一个是内联字符串,它不能正确匹配字符串,有人可以帮助我吗,我有点卡住了。
要将 shell 中的字符串与 [ ]
运算符进行比较,它使用 =
而不是 ==
。这将有效:
if [ "$host" = "server1-myapp.com" ]; then