0

この ./test.sh -d 2013-03-25 のようなものを実行するバッチ スクリプトがあります。ここで日付はユーザー入力です。しかし、私が必要とするのは、日付のリストをこのバッチ スクリプトに渡すことです。2013 年 3 月 1 日から 2013 年 3 月 25 日までの連続する 25 の日付があります。このバッチ実行可能ファイルに各日付を動的に渡すにはどうすればよいですか。

どんな助けでも大歓迎です

4

1 に答える 1

1

1 つの方法は、日付を配列に格納することです。これは、シェルスクリプトからうまく機能します。

dates=(2013-03-01 2013-03-02 etc...)

for date in "${dates[@]}"; do
    ./test.sh -d "$date"
done

もう 1 つの方法は、日付をテキスト ファイルに 1 行に 1 つずつ保存することです。それを行った場合、次のように渡すことができます。

xargs -a dates.txt -d '\n' ./test.sh

または、日付が連続していて同じ月であることを確認すると、プログラムでそれらをループできます。

for day in 00..25; do
    ./test.sh -d "2013-03-$day"
done

for ((day = 1; day <= 25; ++day)); do
    ./test.sh -d "2013-03-$(printf '%02d' "$day")"
done
于 2013-03-25T15:32:16.993 に答える