
我正在運行一個非常複雜的腳本,它會更改目錄並運行許多其他命令。所有這些命令都使用“scriptname”運行,當我從終端執行主腳本時,它運作得很好。但是,有時我必須 ssh 到伺服器並從那裡運行主腳本,它會失敗,因為每個命令之前沒有 ./ 。
我不想遍歷所有腳本和可執行檔並將 ./ 添加到命令中,那麼還有其他方法可以解決此問題嗎?
答案1
有多種方法可以更改此行為,包括添加./
到 PATH 環境變量,但這會對您的環境造成嚴重的安全風險。您的腳本編寫方式確實是錯誤的,正確的解決方案是檢查所有腳本並修復本機腳本的呼叫方式。這是唯一正確的修復方法,不會帶來額外的問題並為您帶來安全問題。我知道這不是你的事通緝聽到,但咬緊牙關並正確行事。
答案2
如果您的腳本恰好位於 /opt/housekeeping/bin 下,我建議您添加
export PATH=$PATH:/opt/housekeeping/bin
到您的 .bash_profile 或 .profile 或您使用的任何登入腳本,並確保在這些腳本上設定 755 權限。
答案3
您可以為腳本建立別名:
alias scriptfile="./scriptfile"