2016-09-25 9 views
0

のために私はそれが私が持っているすべてです、私のSynologyウィット/ binに/ shの中でこのスクリプトを実行しようとしています。/binに/ shの悪い構文ループ

、スクリプトがSynologyのは、このエラーを示している、通常の/ binに/ bashの環境で正常に動作している間:

/volume2/myCustomPath/rotatingSnapshots.sh: line 22: syntax error: bad for loop variable 

これはコードで、Synologyのが不満されている行は、最初のいずれかです。

for ((i=$BIGGEST_NUMBER; i>=1; i--)) 
do 
    ## Some code here 
done 

任意のアイデア?私は何が間違っているのか分かりません。

+0

'$'を削除します。以下のために '試してみてください((私は= BIGGEST_NUMBER; I> = 1; i--))'だけいくつかのシステムで – VM17

答えて

0

/bin/shは、POSIXシェルを指します。理想的にはbashシェルを使用する必要があるスクリプトspでbash構文を使用しようとしています。これはyou-が

(ちなみに、あなたもループ内$を必要としない)のために働く必要があります。

#!/bin/bash 
for ((i=BIGGEST_NUMBER; i>=1; i--)) 
do 
    ## Some code here 
done 
+1

は、それが実際にbash' 'によって実現され、一部には、dash''によって実装 '/ binに/ sh'です。しかし、あなたのより大きなポイントは、 'bash'構文を使いたい場合、あなたのシェルに' bash'を使うべきだということです。 'sh'は一般的にかなりPOSIXに準拠しており、' for'ループ構文はPOSIXの一部ではありません。 –

+1

'/ bin/sh'は* POSIXシェルで定義されています。 – chepner

+0

コメントのおかげで、私は私の答えを編集しました。 – VM17

関連する問題