2017-08-07 175 views
-1

我目前已經將腳本從一個目錄移動到另一個目錄。使shell腳本更改腳本位置

這已經不錯了,但我想知道是否有一種方式通過shell腳本讓它從服務器上的任何地方運行,例如我給腳本讓別人在他們的服務器上使用,他們可以把腳本放在任何地方它會運行。

我知道一個解決方法是把腳本放在/ usr/local/bin或usr/bin中,你可以從任何地方運行它,但這不是我想要的。

有沒有一種方法可以讓我的腳本從usr/local/bin自動運行,而不管它是否在/ scripts中?

請參閱我下面的腳本:

#!/bin/sh -x 
mkdir -p /var/Alitest 
echo "This is a test that I have created. This is to 
see if the output is successful I normally do this manually but a script is required" > /var/Alitest/action.txt 
sed -i 's/This is a test that I have created/The test has been successful/g' /var/Alitest/action.txt 
chmod 744 /var/Alitest/action.txt 
chown root:root Alitest/action.txt 
mv /var/Alitest/action.txt /script/action.txt 

任何幫助,將不勝感激:)

而且在我的日誌輸出腳本顯示以下錯誤:

sed: 1: "/var/Alitest/action.txt": invalid command code A 

有任何想法嗎?

+0

你說的*運行**意味着從**在/ usr/local/bin目錄*? – user1934428

+0

user1934428基本上,腳本將運行在自動化上,我希望腳本能夠從服務器上的任何目錄執行。有沒有可以添加到上面的腳本來實現這個字符串? –

+0

我不太明白這個問題。如果程序位於文件系統的某個位置,只要您有權訪問該程序,就可以執行該程序。我個人不會把我自己的東西放到/ usr/local/bin中。這不是技術原因,而是組織之一;這應該保留給屬於OS分發的工具。也許/ opt/bin會是一個更好的選擇。 – user1934428

回答

0

您可以在腳本的/ usr/local/bin中建立一個軟鏈接。然後它將在每個人的路上被執行。

例如ln -s /script/yourscript.sh /usr/local/bin/yourscript.sh

+0

謝謝你。是否有可能以某種方式將其插入到腳本中。我知道這可以通過命令行來完成,但是我希望腳本能夠執行此操作。這是否會是在此之前插入主要腳本以使其工作或可以通過一個腳本完成的情況? –

0

在進一步回顧此事後,我決定採取行動的最佳方式是將文件夾目標eg/scripts添加到我的路徑中。

出口PATH =/DIR_NAME:$ PATH

記得刷新個人資料,以便改變

這可以通過vimming到服務器上的.bashrc文件並添加以下行來完成生效。

您可以檢查這個已經成功運行下面的命令:

回聲$ PATH

有沒有辦法讓你的腳本來做到這一點。然而,這將是更好然後一個符號鏈接,就好像你將它添加到$ PATH中,那麼你不必每次都要完成添加軟鏈接的任務。

謝謝大家的幫助。

親切的問候 阿里