歡迎您光臨本站 註冊首頁

執行腳本

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0
----正在學習shell,途中做些筆記,整理整理,方便以後翻閱.---- ---- RHEL_6.2_x64,GNU bash version 4.1.2(1)-release ----
編寫完成一個腳本后,當然就是要運行這個腳本了.在這之前,需要注意下面的這些方面: 1)腳本的命名.linux文件沒有硬性要求後綴名.當然為了方便看出文件的類型,shell腳本文件一般都是以.sh結尾,名字則最好能體現出腳本的作用.為了執行腳本時方便,當然短點好啊,可以少敲點.
2)如果把存放這個腳本的目錄放到用戶的PATH中,那就無比方便了,這時可以在命令上輸入腳本名直接回車就運行了.普通用戶需要(rx)許可權,root僅僅只需要一個執行(x)許可權就OK了,任意一個位置的執行(x)許可權都行.
3)如果腳本目錄不在PATH中,則可以進到腳本目錄下,利用./scriptname(點杠腳本名)的方法執行腳本.這種方法是在當前shell中開啟一個新的子shell運行腳本,當腳本結束時子shell也就關閉退出了,任何腳本中的變數對當前環境均不影響.普通用戶需要(rx)許可權,而root仍然僅僅需要一個任意的執行(x)許可權.(最常用的)
4)如果想以特殊的選項或者以當前腳本沒有指定的特殊條件來啟動腳本時候,一般在測試腳本可移植性時,可以明確指定運行腳本的shell類型.此時可以用sh scriptname,或者tcsh scriptname,再或者bash scriptname.腳本運行在當前shell的一個子shell中,同樣不會影響當前shell.值得注意的是,使用sh scriptname 調用腳本時,將會關閉一些Bash特定的擴展,腳本可能因此而調用失敗.普通用戶僅需要此腳本的讀許可權(r),root則沒用任何許可權要求.
5)如果想在當前shell執行腳本而不想啟動一個新的shell,可以使用source或者.(點號).在命令行里這樣輸入source /path/scriptname或者. /path/scriptname(點空格腳本路徑腳本名字)這裡腳本不需要可執行許可權(x),只需要讀取許可權(r)即可.命令在當前shell力執行,所以任何對環境的改變,將在腳本結束時同樣起作用.比如腳本內賦予了一個變數值,腳本結束后,這個變數的值仍然存在.
6)還有一種運行腳本方式,就是sh <scriptname,這也是可行的,但是不推薦使用這種方法,這會令腳本失去從stdin讀取數據的功能.
所有這些之後,就可以根據自己的需要、喜好執行編寫好的腳本了!


本文出自 「非同小可」 博客,請務必保留此出處http://xuke1668.blog.51cto.com/2129485/847011


[火星人 ] 執行腳本已經有384次圍觀

http://coctec.com/docs/linux/show-post-45802.html