一、腳本執行
1.啓動一個新的shell來執行腳本
(1)可執行腳本
運行方式:輸入腳本【路徑+名稱】
./test.sh
/home/test.sh
test.sh # $PATH裏必須有該文件的路徑才行
(2)不可執行腳本
運行方式:需要用【解釋器 路徑+名稱】運行,或給腳本加執行權限(chmod +x)
bash ./test.sh
sh ./test.sh
2.在當前shell裏執行腳本
運行方式: 【source或. 路徑+名稱】
source ~/.bashrc
. ~/.bashrc
~ 是用户主目錄的縮寫
- 對 root:
~就是/root - 對普通用户 f:
~就是/home/f
# 下面兩者等價
source ~/.bashrc
source /root/.bashrc
文件前面加 . 表示該文件為隱藏文件,只有用ls -a才能看到。
二、shell環境變量設置細節
shell分為登錄式和非登錄式,交互式和非交互式,可以命令行交互的都屬於交互式。
登錄式和非登錄式啓動時調用的初始化文件不同:
- 登錄式shell在登陸時,會執行
.profile和.bash_profile。(.profile可以被多種兼容sh的shell讀取,而.bash_profile特定於Bash) - 非登錄式在啓動時執行
.bashrc。
以修改$PATH環境變量為例:
- 當想要追加路徑給PATH時,需要
PATH=$PATH:/usr/local/go/bin,將該路徑追加給原有的PATH變量。 -
Shell 中變量默認是普通變量,只有
export之後才會進入環境變量表。子進程只能看到環境變量,不會看到普通變量。也就是説:
FOO=abc # 僅當前 shell 能看到 export BAR=123 # 當前 shell + 子進程都能看到 # 在./bashrc中 # 當前啓動的bash裏啓動的任何程序、任何腳本、任何新的子 bash都能繼承這個變量 export PATH=$PATH:/usr/local/go/bin # 只有當前bash能用這個環境變量 PATH=$PATH:/usr/local/go/bin