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