Linuxでスクリプトを作成する必要があります。各反復ごとに異なるパラメータを使用して関数を複数回実行したいと思います。
次のコードを書きます。
#!/bin/bash
bash << _EOF_
for ((i=0; i<=20;i++));do
MYFUNCTION -X
done
_EOF_
ここで、-X は整数でなければなりません。代わりに書いてみましたが、$i
成功しませんでした。
答え1
失うトレドックそれはうまくいきます:
#!/bin/bash
for ((i=0; i<=20;i++));do
MYFUNCTION "-$i"
done
または、次のものを使用できます。一重引用符区切り記号、これを$i
防ぎます。設定されていない外部コンテキストから挿入:
#!/bin/bash
bash << '_EOF_'
for ((i=0; i<=20;i++));do
MYFUNCTION "-$i"
done
_EOF_
しかし、新しく開始されたbashプロセスで別のbashを起動する理由はほとんどありません。
答え2
この場合、heredocを使用する理由はありません。
次のコードはbashバージョン4.2.26で正しく実行されます。
#!/bin/bash
function f()
{
echo $1;
};
for i in {1..20}; # This works for a range of integers, but for unrelated values, you can use "i in x y z" format
do
f $i;
done;
それでも問題がある場合は、bashバージョンとテスト中の完全なコードを提供してください。