forループを使用してbash(固有IDを含む)からテキストファイルの各行を読み取り、変数に保存してから、次のように使用するにはどうすればよいですか?

forループを使用してbash(固有IDを含む)からテキストファイルの各行を読み取り、変数に保存してから、次のように使用するにはどうすればよいですか?

こんにちは、私はbashスクリプトに初めてアクセスし、私のIDを含むテキストファイルを読みたいと$variable思っています。

#!/bin/bash

file = "Cell_ids.text"
i=1

for i in file; do

        i=$((i+1))  
         **id** = **$i**




sbatch --mem=4G --time=100 -o fetch_data.%j.out -e fetch_data.%j.err -J fetch_data  <<EOF
#!/bin/bash
java -jar /docs/some-tools.jar --library ${**id**}
EOF

答え1

変数の宣言では、シンボルの周りにスペースが使用できないため、=変数fileは設定されません。$繰り返したい場合は、シンボルの前にシンボルを追加する必要があります。

ループforも決して閉じません。ループの終わりを示すにはキーワードを使用してくださいdone。何をしたいのかわかりませんが、**id** = **$i**スクリプトが次のように見えるようにしたいと思います。

#!/bin/bash

file="Cell_ids.text"

for i in $(cat $file); do
    sbatch \
        --mem=4G \
        --time=100 \
        -o fetch_data.%j.out \
        -e fetch_data.%j.err \
        -J fetch_data << EOF
#!/bin/bash
java -jar /docs/some-tools.jar --library $i
EOF
done

i=1自動的に設定されるため、ループ前に宣言する必要がないため削除しました。私はそれに慣れていませんが、sbatchこのコマンドについて質問がある場合は、それについて具体的に新しい質問を投稿できます。

関連情報