406

andifに関して、次のステートメントの問題が何であるかを理解できないようです。はまだ開発中であることに注意してください。ステートメントでまだテストできていないため、間違っている可能性が高くなります。elifthenprintf

私が得ているエラーは次のとおりです。

./timezone_string.sh: line 14: syntax error near unexpected token `then'
./timezone_string.sh: line 14: `then'

と、発言はそのとおりです。

if [ "$seconds" -eq 0 ];then
   $timezone_string="Z"
elif[ "$seconds" -gt 0 ]
then
   $timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60`
else
   echo "Unknown parameter"
fi
4

5 に答える 5

337

スクリプトにいくつかの構文の問題があります。修正版は次のとおりです。

#!/bin/bash

if [ "$seconds" -eq 0 ]; then
   timezone_string="Z"
elif [ "$seconds" -gt 0 ]; then
   timezone_string=$(printf "%02d:%02d" $((seconds/3600)) $(((seconds / 60) % 60)))
else
   echo "Unknown parameter"
fi
于 2013-04-16T10:36:11.753 に答える
6

elifプログラムのとrest の間のスペースの欠落[は正しいです。修正して確認する必要があります。ここに固定プログラムがあります:

#!/bin/bash

if [ "$seconds" -eq 0 ]; then
   timezone_string="Z"
elif [ "$seconds" -gt 0 ]; then
   timezone_string=$(printf "%02d:%02d" $((seconds/3600)) $(((seconds / 60) % 60)))
else
   echo "Unknown parameter"
fi

このbash if else ステートメントに関連する便利なリンク

于 2020-01-20T06:32:15.133 に答える