シェルスクリプトは1つの関数のみを呼び出すことを期待していますが、実際には2つの関数を同時に呼び出します。この問題を解決する方法は次のとおりです。
どちらも同じです。
彼らは同じではありません
#!/bin/bash
var1=ORCL
var2=ORCL
function f1
{
echo "both are same"
}
function f2
{
echo "both are not same"
}
if [ $var1=$var2 ];
then
f1
fi
if [ $var1!=$var2 ];
then
f2
fi
答え1
スペース関係演算子内で使用する場合に必須もし状況
前任者:
if [ $var1 = $var2 ] ;
if [ $var1 != $var2 ] ;
スクリプトの変更
#!/bin/bash
var1=ORCL
var2=ORCL
f1()
{
echo "both are same"
}
f2()
{
echo "both are not same"
}
if [ $var1 = $var2 ];
then
f1
fi
if [ $var1 != $var2 ];
then
f2
fi
答え2
スペースを追加する必要があります。
変える
if [ $var1=$var2 ];
そして
if [ "$var1" = "$var2" ];
2番目のif
声明も同じです。