Linux之脚本执行
Linux 下腳本的執行方式有分三種:
(1)bash script-name 或者 sh script-name;(2)path/script-name或者./script-name;(3)source script-name或者. script-name。下面,分別介紹下這三種方式的特點:
(1)bash script-name或者sh script-name
這是當腳本文件本身沒有可執行權限(即文件權限屬性x位為-號)時常使用的方法,或者腳本文件開頭沒有指定解釋器時需要使用的方法。推薦使用這種方法。
(2)path/script-name或者./script-name
指在當前路徑下執行腳本(腳本需要有執行權限),需要將腳本文件的權限改為可執行(即文件權限屬性為x位)。具體方法為:chmod a+x script-name。然后通過執行腳本絕對路徑或者相對路徑就可以執行腳本了。
注意:在生產環境中,運維人員由于忘記為該腳本設置可執行權限,然后直接使用,導致出錯。因此,推薦第一種 bashscript-name。
(3)source script-name或者. script-name
source或者“.”命令的功能是:讀入腳本并執行腳本,即在當前Shell中執行source或“.”加載并執行的相關腳本文件的命令及語句,而不是產生一個子Shell來執行文件中的命令。
創建一個sh1.3.sh腳本
這里文件沒有執行權限,按照上述的三種執行方式:
1、./script.sh
為了可以執行該文件,需要對該文件的權限進行修改即可
注意:該種方式也是產生了一個子進程Shell,因此echo $fruit仍然找不到該變量
2、bash script.sh
現在顯示在腳本中定義的變量fruit
變量fruit的值是空的。不難理解,bash script-name是產生了一個子進程shell,而我們當前的操作還在父shel中因此得不到該變量值
3、. script.sh
可以成功的輸出變量的值。這是因為source script-name和. script-name是將script-name中的內容直接加載到當前的shell,因此能夠輸出當前變量的值
總結
以上是生活随笔為你收集整理的Linux之脚本执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux之文件压缩与打包
- 下一篇: Linux之eval命令使用