我有一個名爲remote_execution.sh的shell腳本。是否有可能在任何文件夾中輸入remote_execution
並開始執行,就像gcc,vi或其他命令一樣?如何創建一個unix命令
在此先感謝。
我有一個名爲remote_execution.sh的shell腳本。是否有可能在任何文件夾中輸入remote_execution
並開始執行,就像gcc,vi或其他命令一樣?如何創建一個unix命令
在此先感謝。
將remote_execution.sh所在的目錄添加到您的$PATH
變量中。此外,如果你希望它沒有結束.sh
推出,重命名腳本remote_execution
你有3種方式:您可以複製該腳本在PATH
發現的一個目錄或創建腳本有一個符號鏈接(ln -s
)或將外殼腳本的當前目錄添加到PATH
(export PATH=$PATH:dir
)。
要找出PATH
看起來像echo $PATH
。
以下四個步驟應該允許您從文件系統中的任何地方運行remote_execution
:
remote_execution
,去除.sh
擴展添加「shebang」行至頂部文件
#!/bin/bash
修改文件的permissions因此它是可執行文件(見man chmod
)
chmod u+x remote_execution
文件移動到一個目錄在你PATH
所以「任何文件夾中的作品」。在猜測:
mv remote_execution /usr/local/bin
你怎麼知道這是一個bash腳本?你怎麼知道它缺少一個shebang?它尚未可執行?它不在PATH中?他不應該用'sudo mv remote_execution/usr/local/bin'寫入/ usr/local/bin嗎? – 2012-03-09 22:28:04
@userunknown它被稱爲概率。做出了假設,並且這些假設是安全的。 – meagar 2012-03-10 07:51:11
你可以把這個腳本由$PATH
$ echo $PATH
[[email protected] test]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/andreas/bin
描述你的腳本重命名爲remote_execution
任何文件夾中,並在第一行放#!/bin/sh
。也chmod它,以確保它的可執行
$ chmod 755 remote_execution
是的。您有兩種選擇,將腳本放在路徑的某處,或者將腳本的目錄追加到~/.profile
中的路徑中。
另一種選擇是設置一個別名
alias remote_execution="fullpath to remote_execution.sh"
每個文件都有它自己的權限位。您必須修改文件的權限以使其可執行。因此,使用命令 -
chmod +x remote_execution
希望你已經添加了「shebang」行到文件的頂部
#!/bin/bash
如果調用一個明確的解釋劇本,像
bash remote_execution.sh
/bin/bash remote_execution.sh
dash remote_execution.sh
sh remote_execution.sh
無論什麼說什麼,你都會使用你選擇的翻譯,這只是一個評論。否則,內核會查找shebang並使用其中指定的解釋器啓動程序。如果使用Shebang字符,那麼不管是什麼擴展名!
你的shell是一個程序。它有變量,其中之一是$ PATH
$PATH
包含搜索命令
目錄的冒號分隔列表,如果你想看到它只是在終端上鍵入$ echo $PATH
。
在我的電腦顯示
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
這意味着,如果我鍵入命令一樣GCC或Vim,它上面的目錄列表搜索英寸
現在只需將您的shell腳本複製到以上任何一個文件夾即可從任何地方訪問它。
當然,這必須是一個愚蠢? – poolie 2012-03-09 06:34:16
這真的不值得成爲答案,但是您可以爲您的腳本創建一個目錄,並將該目錄添加到您的$ PATH中。谷歌「添加目錄到$ PATH」的信息。 – CoffeeRain 2012-03-09 22:27:25