あなたはbashのスクリプトに探しに興味がある可能性があり、このような何かを試すことができます。
forループ内でコマンドをシェルから直接実行することができます。
具体的に言及した数字を生成する単純なループです。例えば、シェルから:
[email protected] $ for i in {22..680} ; do
> echo "filename${i}.bmp"
> done
これはfilename22.bmp
からfilename680.bmp
にあなたのリストが表示されます。それはあなたが言及した範囲の繰り返しを処理するだけです。これには0のパディング数は含まれません。これを行うにはprintf
を使用できます。 printf
の構文はprintf format argument
です。前のループの変数$i
を引数として使用し、%Wd
形式を適用できます(Wは幅です)。 Wプレースホルダをプレフィックスにすると、使用する文字が指定されます。例:所定の値とは反対の値を取得するためのコマンドを実行する変数として上記$()
作用において
[email protected] $ for i in {22..680} ; do
> echo "filename$(printf '%04d' $i).bmp"
> done
。
これで、指定したファイル名が表示されます。我々はそれを取ると、実際のアプリケーションに適用することができます。これは、1本のラインを形成するために書き換えることができ
[email protected] $ for i in {22..680} ; do
> ./filter "filename$(printf '%04d' $i).bmp" lower upper
> done
:質問から注意すべき
[email protected] $ for i in {22..680} ; do ./filter "filename$(printf '%04d' $i).bmp" lower upper ; done
一つのことを、.exeファイルは、一般的にコンパイルされていますCOFF
フォーマット(linuxはELF
フォーマットを実行可能としています)。ファイルに追加する
for i in {1..100}; do echo "Hello Linux Terminal"; done
:ここ
ここに私が試したのは、それは私の画面に多少関連性のあるものをたくさん印刷しましたが、実際にはファイルを作成していませんでした... #! (; <= 680;(= 022 ++))のために/ binに/ bashの のprintfを行う」./filter胎児-00-2.3.5um__voi0%04d.bmp fetus_threshold_%04D 90 240" $ 行わ ここで、90と240は私が先に述べた下位と上位の議論です。私はbashスクリプトを作成していないので、前のコード行を入力したファイルを作成するためにemacsを使用しました。私はemacsファイルを単にテストとして保存しました。それは何かの背後に何もないので、それは私がオンラインで行ういくつかの例を見たものです。その他のヒント? –
.shファイルに作成してください(上記で新しく追加したもの)。そして、同じディレクトリに[[bash myfile.sh]]と入力してファイルを実行してください。 – scottyaz
これは少なくとも、時間が経過し、最初のイメージでも動作します。その後、実行可能ファイルが使用しているソフトウェアからエラーが発生します。私が理解していないことは、それがinputfile0000で開始しようとしており、inputfile0022.bmpで始まるように指示しているということです。私が得ている唯一の出力イメージはoutputfile0000.bmpです。 threshold.shとして保存したbashファイルは次のとおりです。 #!/bin/bash for((a = 022; a <= 680; a ++)) do printf "./filter6 fetus-00-2_3.5um__rec_voi%04d.bmp fetus_threshold_%04d.bmp 90 240" $ a | "sh" done –