これは簡単ですが、動作させることができません。私はsshのbashスクリプトで単純なif else文を実行したい。ここでは以下の私のコードは次のとおりです。bash if else文
#!/bin/sh
echo -n "enter what type of logs. (ie. cpanel, apache) "
read type
if [$type == cpanel]
then
LOGTYPES ="error, access"
else
LOGTYPES ="error, access, suphp, suexec"
fi
echo -n "enter which log to tail (ie. $LOGTYPES) "
read logs
echo -n "enter last number of lines to view. (ie. 10, 5000 etc) "
read lines
tail -$lines /usr/local/$type\/logs/$logs\_log
私はすべてを試みたし、私はこのエラーを取得しておいてください。
[~]# /apachetail
enter what type of logs. (ie. cpanel, apache) cpanel
/apachetail: line 5: [cpanel: command not found
/apachetail: line 9: LOGTYPES: command not found
enter which log to tail (ie.)
私は、次の方法を試してみた、なしの仕事:
if [$type -eq cpanel]
if [$type -eq cpanel];
if [$type == cpanel];
if [$type = cpanel]
if [$type = cpanel];
if ["$type" = cpanel]
if ["$type" = cpanel];
if ["$type" == cpanel]
if ["$type" == cpanel];
if ["$type" -eq cpanel];
if ["$type" -eq cpanel]
ああ、それは主に間隔に関することです。ありがとうございました! – sven30
さらに、「[a == b]」の二重「=」はbash拡張です。最初の行に#!/ bin/bashを使用するか、「[a = b]」を使用してください。 – kupson
@ sven30:シェルコマンド言語 '['はコマンドであり構文ではないことを覚えておくことが重要です。それはあなたが実行するプログラムであり、引数をとります。 'test'(人手テスト)とも呼ばれます。シンタックスではないので、bashは空白やその他の構文で区切られた独自のトークンでなければ、それが何であるかを知ることができません。 – Sorpigal