2017-03-07 7 views
0

私は、次のファイルのディレクトリを持ってシェル:どのように私は上記のディレクトリからシェルスクリプトを実行しない複数のファイルに

/home/aero/airplane/case1 
/home/aero/airplane/case2 
.. 
/home/aero/airplane/casex 

私はいくつかの簡単なコマンドを実行するシェルスクリプトを持っています。私は各ディレクトリに "cd"してシェルスクリプト(runscript.sh)を実行したくありません。あなたの助けのための

runscript.sh /case* 

ありがとう:私はの線に沿って何かを入力する単純な方法でそれを実行する方法は、あります!

答えて

0

あなたはすべてのケースでrunscript.shを実行する2番目のスクリプト持つことができます:あなたは、次のような何かを行うことができ

#In the new shell run every case 
runscript.sh /home/aero/airplane/case1 
runscript.sh /home/aero/airplane/case2 
.. 
runscript.sh /home/aero/airplane/casex 
+0

この方法の問題は、2番目のスクリプトを作成する必要があることです。これは時間を消費し、2番目のスクリプトに記載されているケースに固有のものです。私はワイルドカード引数(case *)を使ってスクリプトを実行できるコマンド(今は覚えていない)を見てきました。 – user7649922

0

を:

/ホーム/エアロを/内部runscript.shという名前のファイルを作成します。飛行機

#!/bin/bash 
MAINPATH=/home/aero/airplane 
CHILD_DIR=$(ls | grep -v runscript.sh) 

for i in $MAINPATH 
do 
    cd $MAINPATH/$i 
    pwd 
    cd .. 
done 

ラン:

sh runscript.sh 

スクリプトは、それを実行しているすべてのディレクトリを一度に入力することを確認してください。

ここで、 "pwd"行を変更して、すべてのディレクトリ内で必要な操作を行うことができます。

+0

私はより直接的なものを探しています。私は、次のコマンドを使ってシェルスクリプトを提出する方法を知っています: 'cd case1; runscript.sh '私はcd case *をタイプすることが大好きです。 runscript.sh 'を実行すると、スクリプトはすべての大文字小文字のディレクトリに対して実行できるようになります。私は他のユーザーが余分なファイルやシェルをセットアップすることなくこれを実行できるようにしたいと考えています – user7649922

+0

私はあなたが必要とするものを手に入れましたが、ネイティブに何かを実行することはできません。メインスクリプト(この場合はrunscript.sh)に設定します。これに最も近いのは、runscript.sh内でこれを行うルーチンを作成し、/ usr/binにシンボリックリンクを作成するか、システムのバイナリとコマンドを保持する別のフォルダを作成して、どこからでもスクリプトを使用できるようにすることです。あなたのアイデアをもっと説明すれば、私はおそらくもっと詳細になるでしょう。 –

関連する問題