rclone用のbashスクリプトの生成に問題があります。
これによりエラーが発生します。
20d: command not found
DAYS='20d'
PURGE='purge --min-age' ${DAYS}
rclone ${PURGE} ${DEST}/old/ $VERBOSE $LOGS
これは効果があります
PURGE='purge --min-age 20d'
rclone ${PURGE} ${DEST}/old/ $VERBOSE $LOGS
最初のものを使用できるように誰かが私を助けることができますか? DAYSだけを変更すると、他の人がこのスクリプトを使用する方が簡単になります。
答え1
PURGE
変数への参照が原因でこの問題が発生します。
現在、以下を設定しています。
PURGE='purge --min-age'
それから実装する ${DAYS}
(20d)PURGE
環境の変数。
次のことができます。
purge=(purge --min-age "$days")
(配列は、引用されていない変数よりもコマンドライン引数を保持するより安全な方法です。)
次のように呼び出すことができます。
rclone "${purge[@]}" "${dest}/old" "$verbose" "$logs"
注:環境変数には大文字の変数名のみを使用できます。
たとえば、
$ FOO=bar env | grep FOO
FOO=bar
$ env | grep FOO
$
FOO
変数をに設定し、bar
そのenv
環境でその変数を使用してコマンドを実行します。
20d
有効なコマンドではないため、エラーが発生します。