-1
のループ問題まで、私は以下のようにbashでループまで書いています:bashの
#!/bin/bash
#check of the out file size and wait file size is reached to feed file then come out
FEED_FILE_SIZE=$(stat -c%s "$FEED_FILE")
echo "FEED_FILE_SIZE : "$FEED_FILE_SIZE
until[[ $(stat -c%s "$OUT_FILE") -gt $FEED_FILE_SIZE]]
do
echo "sleeping for next 5 seconds "
sleep 5
done
が、私はエラーの下になっていると私は理由を理解することはできませんよ?
./dtcc.sh: line 140: until[[ 0 -gt 185219880]]: command not found
./dtcc.sh: line 141: syntax error near unexpected token `do'
./dtcc.sh: line 141: ` do'
私を助けてください。前もって感謝します。
変数 'FEED_FILE'と' OUT_FILE'は初期化されていません。デバッグモードを有効にするには、第2行に 'set -x'を挿入してください。それから、私が見たものを見ることができます。初期化されていない変数は何も展開されません。したがって、 'until'は構文的に不正確になります。 (変数を初期化した後、私は既に何が答えられているかを理解しました) – Scheff
@Scheffそれは問題ではありません。構文はうまくいくでしょう。むしろ '-gt'の各空文字列の引数は単に0として扱われます。 – chepner
@chepnerそれは知っておもしろいことです。私はよく '' [["x $ VAR" == "x"]]のようなものを見たことを覚えています。次に "VAR empty"をエコーします。 fi'。しかしあなたは正しいです。ちょうどそれをチェックアウトしました: '[[$ VAR ==" "]];次に "VAR empty"をエコーします。 fi'も同様に働く。おそらく、これは古いバージョンのbashの問題でした。 (その観察は実際にはかなり前のことです。)それは決して問題ではなく、私が学んだ誰かの気持ちだけです。 – Scheff