如何在不輸入 ./ 的情況下執行 bash 腳本

如何在不輸入 ./ 的情況下執行 bash 腳本

它已經困擾我很久了,我真的厭倦了。例如,有一個名為 testscript 的腳本可以比較兩個目錄。在課堂上,教授只需輸入

testscript dir1 dir2

要獲得輸出,但我必須在測試腳本之前添加 ./ 並按 Enter 鍵。然後在下一行輸入dir1和dir2

教授是怎麼做到的?是不是跟bashrc有關?我從來不明白它是如何工作的。如果相關,請用簡單的語言解釋,因為我是 Linux 新手。謝謝你!

答案1

您需要將帶有腳本的目錄新增至PATH變數:

export PATH="$PATH:/path/to/dir"

或者你甚至可以添加目前的目錄到PATH

export PATH="$PATH:."

後者有一些安全缺陷儘管。

答案2

另一種方法是在 bashrc 檔案中新增別名:

vim ~/.bashrc

這是我的 bashrc 檔案的樣子:

# .bashrc

alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'


# Source global definitions

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'

如果您查看顯示別名的位置,那麼您就可以新增它。例如,您可以輸入:

alias testscript='bash ./testscript.sh'

答案3

您應該將以下行放在文件末尾.bashrc

PATH=$PATH:.    

為此,您可以鍵入以下命令:

echo "PATH=$PATH:." >> ~/.bashrc    

然後你應該啟動一個新的 shell 讓它工作

答案4

您可能考慮的另一種選擇是將這些特殊的可執行腳本和程式收集到一個目錄中,並將其放入 PATH 語句中。因此,您不必使用可怕的“.”。 (點)在 PATH 變數中,但它仍然會執行您想要的操作。

相關內容