同じフォルダー内の別のスクリプトを実行可能にするスクリプトを作成するにはどうすればよいですか?

同じフォルダー内の別のスクリプトを実行可能にするスクリプトを作成するにはどうすればよいですか?

同じフォルダー内の別のスクリプトを実行可能にするスクリプトを作成するにはどうすればよいでしょうか? 同じディレクトリにあるため、パスについては気にしたくありません。したがって、次のようになります (D3GO スクリプトを実行可能にしようとしています):

#!/bin/bash    

chmod +x "$pwd"/D3GO

私はスクリプトに関しては初心者なので笑わないでください :D ありがとうございます!

答え1

スクリプトを実行するとbash、 を含むすべてのコマンドがスクリプトが呼び出されたディレクトリで実行されますpwd。例:

#!/bin/bash

pwd

これを から実行すると、スクリプトが配置されている場所に関係なく が/whatever/path表示されます。/whatever/path

スクリプトを実行しているディレクトリ内のファイルを操作したい場合は、pwd次のように省略できます。

chmod +x D3GO

これは、スクリプトが実際にどこに配置されているかに関係なく、chmod +x /whatever/path/D3GOから実行した場合と同じように解釈されます。/whatever/path

スクリプトが配置されているディレクトリを操作するには、変数を使用できます$BASH_SOURCE。これは配列であり、最初の要素はスクリプト自体へのパスです (つまり)。これをコマンドと組み合わせて、ディレクトリのみを取得/script/directory/myscript.shできます。dirname

chmod +x `dirname ${BASH_SOURCE[0]}`/D3GO

D3GOこれにより、スクリプトが呼び出された場所ではなく、スクリプトが配置されているディレクトリが検索されます。(私の間違いを指摘してくれた @muru に感謝します。)

答え2

すごく近かったよ!

#!/bin/bash    

chmod +x D3GO

関連情報