2012-03-09 121 views
2

我有一個名爲remote_execution.sh的shell腳本。是否有可能在任何文件夾中輸入remote_execution並開始執行,就像gcc,vi或其他命令一樣?如何創建一個unix命令

在此先感謝。

+0

當然,這必須是一個愚蠢? – poolie 2012-03-09 06:34:16

+0

這真的不值得成爲答案,但是您可以爲您的腳本創建一個目錄,並將該目錄添加到您的$ PATH中。谷歌「添加目錄到$ PATH」的信息。 – CoffeeRain 2012-03-09 22:27:25

回答

1

將remote_execution.sh所在的目錄添加到您的$PATH變量中。此外,如果你希望它沒有結束.sh推出,重命名腳本remote_execution

1

你有3種方式:您可以複製該腳本在PATH發現的一個目錄或創建腳本有一個符號鏈接(ln -s )或將外殼腳本的當前目錄添加到PATHexport PATH=$PATH:dir)。

要找出PATH看起來像echo $PATH

5

以下四個步驟應該允許您從文件系統中的任何地方運行remote_execution

  1. 的文件重命名爲remote_execution,去除.sh擴展
  2. 添加「shebang」行至頂部文件

    #!/bin/bash 
    
  3. 修改文件的permissions因此它是可執行文件(見man chmod

    chmod u+x remote_execution 
    
  4. 文件移動到一個目錄在你PATH所以「任何文件夾中的作品」。在猜測:

    mv remote_execution /usr/local/bin 
    
+0

你怎麼知道這是一個bash腳本?你怎麼知道它缺少一個shebang?它尚未可執行?它不在PATH中?他不應該用'sudo mv remote_execution/usr/local/bin'寫入/ usr/local/bin嗎? – 2012-03-09 22:28:04

+1

@userunknown它被稱爲概率。做出了假設,並且這些假設是安全的。 – meagar 2012-03-10 07:51:11

3

你可以把這個腳本由$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 
1

是的。您有兩種選擇,將腳本放在路徑的某處,或者將腳本的目錄追加到~/.profile中的路徑中。

4

另一種選擇是設置一個別名

alias remote_execution="fullpath to remote_execution.sh" 
0

每個文件都有它自己的權限位。您必須修改文件的權限以使其可執行。因此,使用命令 -

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腳本複製到以上任何一個文件夾即可從任何地方訪問它。