隨筆-144  評論-80  文章-1  trackbacks-0

             打印
          yaogangNUPT
          (stranger)
          05-03-13 21:26
          如何直接執行shell腳本  

          腳本文件點擊后常常是會提示是在終端執行還是執行的對話框
          在命令行中常常需要./filename 或者是sh filename
          消去對話框可以用起動器(也叫鏈接或者或者是快捷方式)


          請問
          怎么樣才能使得腳本文件直接在命令行中執行而不要sh 或者是./ ???

          文章選項: 打印

          antzcn
          (newbie)
          05-03-15 13:04
          Re: 如何直接執行shell腳本 新  

          $ export PATH=$PATH:.


          --------------------

          Freedom!

          文章選項: 打印

          yaogangNUPT
          (stranger)
          05-03-16 16:24
          Re: 如何直接執行shell腳本 新  

          謝謝 但是為什么會這樣呢?
          非常謝謝


          --------------------
          不知道也可以說 但是不能瞎說
          實話實說

          文章選項: 打印

          yaogangNUPT
          (stranger)
          05-03-16 17:01
          Re: 如何直接執行shell腳本 請教 請教 新  

          據我所知
          你的那條已經在.bash_profile里面聲明過
          并且你所說的 只能對于當前的shell有用
          換了shell后 又要export
          你看更好的解決方案是什么
          .bashrc 里面行不行??
          請教


          --------------------
          不知道也可以說 但是不能瞎說
          實話實說

          文章選項: 打印

          yaogangNUPT
          (stranger)
          05-03-18 12:55
          Re: 如何直接執行shell腳本 新  

          我用了你提供的方法 感覺很好 于是我做了一下分析
          你用的是export 將PATH地址導入子shell

          但是具體的shell搜尋的地址是什么 我還是不清楚
          我用$ echo $PATH 顯示的是
          /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
          并沒有將當前目錄加入

          我們知道shell執行腳本的時候 從PATH的順序搜下去如果有的話就執行
          沒有就找下去 并且可執行的程序要比sh腳本優先極高

          我們用的是sh 就是搜索\當前目錄
          ./ 也是如此 "."指的是當前目錄 就象".."指的是前一極目錄一樣

          我用 ln (-s) 要執行的sh腳本的路徑 PATH可搜尋路徑+文件名
          可以完成同樣的工作
          當然cp \操作也能

          為什么會用export PATH=$PATH 就行我很想知道


          --------------------
          不知道也可以說 但是不能瞎說
          實話實說

          文章選項: 打印

          passworld
          (newbie)
          05-03-18 14:26
          Re: 如何直接執行shell腳本 新  

          看回答仔細一點兒:
          export PATH=$PATH:.
          不是
          export PATH=$PATH

          那一個點就是當前目錄,當你執行后再 printenv PATH 應該是:
          /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:.
          注意最后的點,一般建議如果要加當前目錄,應該把它放在最后,以免系統被黑。

          你如果看man bash,他會告訴你:
          ~/.bash_profile: The personal initialization file, executed for login shells
          ~/.bashrc: The individual per-interactive-shell startup file

          RTFM: Read The [censored] Manual 是很重要的。

          文章選項: 打印

          yaogangNUPT
          (stranger)
          05-03-29 19:35
          Re: 如何直接執行shell腳本 新  

          謝謝
          佩服 佩服


          --------------------
          不知道也可以說 但是不能瞎說
          實話實說

          文章選項: 打印

          bunengzaicai
          (newbie)
          05-04-07 22:20
          Re: 如何直接執行shell腳本 新  

          補充一點:依據版主所說,添加當前目錄時切記將其置后,否則依照搜尋順序,本地程序優先執行,本地黑客程序將會代替掉系統程序運行,造成系統被黑!!!
          不太建議你添加本地目錄!(有時會混淆)


          --------------------
          團結吧!中國人!我們不能再菜下去了!

          posted on 2005-05-08 23:15 小力力力 閱讀(5059) 評論(0)  編輯  收藏 所屬分類: LINUX
          主站蜘蛛池模板: 顺平县| 华阴市| 景东| 新巴尔虎右旗| 金沙县| 延庆县| 舞阳县| 贵定县| 板桥市| 宣化县| 正蓝旗| 化德县| 博客| 洛浦县| 和政县| 新乡市| 星子县| 福州市| 东辽县| 沽源县| 望谟县| 永春县| 高平市| 桂平市| 农安县| 娄底市| 和顺县| 北海市| 航空| 黄山市| 海原县| 抚松县| 龙门县| 陕西省| 辽阳市| 禹城市| 慈利县| 威信县| 新津县| 阿坝县| 勐海县|