5

train1train2、 ... 、にパスが割り当てられた一連のファイルに対してスクリプトを実行する必要があり、train20「bash スクリプトで自動化してみませんか?」と考えました。

だから私は次のようなことをしました:

train1=path/to/first/file
train2=path/to/second/file
...
train20=path/to/third/file

for i in {1..20}
do
    python something.py train$i
done

train$iの名前はエコーtrain1しますが、その値はエコーしないため、これは機能しませんでした。

だから私は失敗した$(train$i)かのよう${train$i}なことを試しました${!train$i}。これらの変数の正しい値をキャッチする方法を知っている人はいますか?

4

2 に答える 2

4

配列を使用できます:

train[1]=path/to/first/file
train[2]=path/to/second/file
...
train[20]=path/to/third/file

for i in {1..20}
do
    python something.py ${train[$i]}
done

または評価しますが、それはひどい方法です:

train1=path/to/first/file
train2=path/to/second/file
...
train20=path/to/third/file

for i in {1..20}
do
    eval "python something.py $train$i"
done
于 2013-06-26T11:46:20.800 に答える