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