腳本文件點擊后常常是會提示是在終端執行還是執行的對話框 在命令行中常常需要./filename 或者是sh filename 消去對話框可以用起動器(也叫鏈接或者或者是快捷方式) 請問 怎么樣才能使得腳本文件直接在命令行中執行而不要sh 或者是./ ???
文章選項:
$ export PATH=$PATH:. --------------------Freedom!
謝謝 但是為什么會這樣呢? 非常謝謝 --------------------不知道也可以說 但是不能瞎說 實話實說
據我所知 你的那條已經在.bash_profile里面聲明過 并且你所說的 只能對于當前的shell有用 換了shell后 又要export 你看更好的解決方案是什么 .bashrc 里面行不行?? 請教 --------------------不知道也可以說 但是不能瞎說 實話實說
我用了你提供的方法 感覺很好 于是我做了一下分析 你用的是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 就行我很想知道 --------------------不知道也可以說 但是不能瞎說 實話實說
看回答仔細一點兒: 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 是很重要的。
謝謝 佩服 佩服 --------------------不知道也可以說 但是不能瞎說 實話實說
補充一點:依據版主所說,添加當前目錄時切記將其置后,否則依照搜尋順序,本地程序優先執行,本地黑客程序將會代替掉系統程序運行,造成系統被黑?。?! 不太建議你添加本地目錄!(有時會混淆) --------------------團結吧!中國人!我們不能再菜下去了!