2

.bat から L/unix への変換について議論している他のスレッドがここにリンクの説明を入力しているのを読みましたが、どれも満足のいくものではありませんでした。また、独自のスクリプトを作成する際に、多くのハック タイプのアプローチを試みました。

次の example.bat スクリプトは、UNIX で実行したいスクリプトの代表です。

コード:

echo "Example.bat"

perl script1 param.in newParam.in

perl script2 newParam.in stuff.D2D stuff.D2C

program.exe stuff.D2C

perl script3 stuff.DIS results.out

私の問題は、UNIX bash シェルで perl と program.exe を処理する方法がわからないことです。それらをsystem()に入れてみましたが、うまくいきませんでした。誰か助けてくれませんか?ありがとうございました!

4

1 に答える 1

2

実行可能ファイルの名前がprogram.exeどこかに$PATHある場合 (Unix 実行可能ファイルは.exe. たとえば、という名前のファイルに保存すると、次のexample.batように入力して実行できます

sh example.bat

シェルプロンプトに。

もちろん、Unix シェル スクリプトには通常.sh.bat. また、スクリプトを直接実行できるようにする場合は、次のように入力するだけです

example.sh

ではなくsh example.sh、次の 3 つのことを行う必要があります。

  1. 「shebang」行でスクリプトを開始します。次の#!ように、実行に使用するシェル インタープリターへのフル パス (たとえば/bin/sh、基本的な Bourne シェルの場合) で始まる行です。

    #!/bin/sh
    
    echo "This is a shell script."
    
    # ... more commands here ...
    
  2. chmodコマンドを使用してスクリプトを実行可能としてマークします。

    chmod a+rx example.sh
    
  3. に沿ってどこかにスクリプトを配置します$PATH。Unix では、通常、既定のパスには現在のディレクトリが含まれてい.ないため、名前を入力するだけで現在のディレクトリからプログラムを実行することはできません。ただし、明示的なパスを指定して実行することはできます。

    ./example.sh    # runs example.sh from the current directory
    

    あなたが何であるかを知るには、シェル$PATHに入力するだけです。echo $PATH

于 2012-06-29T22:34:42.687 に答える