1

3つのものをファイルに出力するスクリプトがあります。>オペレーターに一度だけ電話したいのですが。命令のブロックを説明する方法はありますか?関数を使用する必要がありますか?

#!/bin/sh

for i in $(ls src)
 do
  f=${i%.*}
  echo 'first bit' > dist/$i.htm
  perl myScriptThatOutputsSecondBit.pl >> dist/$i.htm
  echo 'third bit' >> dist/$i.htm
 done
4

2 に答える 2

3

コマンドを使用しますcompound/group

現在のシェルで実行するには、

 {echo 'first bit';perl myScriptThatOutputsSecondBit.pl;echo 'third bit';} > dist/$i.htm 


サブシェルで実行するには、

 (echo 'first bit';perl myScriptThatOutputsSecondBit.pl;echo 'third bit') > dist/$i.htm 
于 2012-05-18T09:09:12.013 に答える
0

単純なログ関数を記述します。これはより効率的です。例えば

log(){
   echo $1 >> dist/$i.htm
}

次に、スクリプトから呼び出します。

for i in $(ls src)
do
    f=${i%.*}
    log 'first bit'
    perl myScriptThatOutputsSecondBit.pl >> dist/$i.htm
    log 'third bit'
done
于 2012-05-23T09:30:22.053 に答える