-
環(huán)境變量:
locale
查看全部 -
預(yù)定義變量:?
1、$?:最后一次執(zhí)行的命令的返回狀態(tài)。?
如果這個(gè)變量的值為0,證明上一個(gè)命令正確執(zhí)行;如果這個(gè)變量的值為非0(具體是哪個(gè)數(shù),由命令自己來(lái)決定),則證明上一個(gè)命令執(zhí)行不正確了。?
2、$$:當(dāng)前進(jìn)程的進(jìn)程號(hào)(PID)。?
3、$!:后臺(tái)最后一個(gè)運(yùn)行的進(jìn)程的進(jìn)程號(hào)(PID)。?
執(zhí)行命令后在后面加一個(gè)& ,可以在后臺(tái)進(jìn)行 執(zhí)行完一條命令之后,立馬敲入echo $?,可得到返回值。例如:ls 執(zhí)行之后,再敲入echo $?,可以得到0??
接收鍵盤輸入?
read [選項(xiàng)] [變量名]?
選項(xiàng):?
-p "提示信息":在等待read輸入時(shí),輸出提示信息?
-t 秒數(shù):read命令會(huì)一直等待用戶輸入,使用此選項(xiàng)可以指定等待時(shí)間?
-n 字符數(shù):read命令只接受指定的字符數(shù),就會(huì)執(zhí)行?
-s:隱藏輸入的數(shù)據(jù),適用于機(jī)密信息的輸入
read.sh:?
#!/bin/bash?
read -p "please input your name:" -t 30 name?
echo $name?
read -p "please input your passwd:" -s passwd echo -e "\n"?
echo $passwd?
read -p "please input your sex [M/F]:" sex echo -e "\n"?
echo $sex
查看全部 -
1、位置參數(shù)變量?
$n:n 為數(shù)字,$0 代表命令本身,$1-$9 代表第一到第九個(gè)參數(shù),十以上的參數(shù)需要用大括號(hào)包含,如 ${10}。?
$*:這個(gè)變量代表命令行中所有的參數(shù),$* 把所有的參數(shù)看成一個(gè)整體。?
$@:這個(gè)變量也代表命令行中所有的參數(shù),不過(guò) $@ 把每個(gè)參數(shù)區(qū)分對(duì)待。?
$#:這個(gè)變量代表命令行中所有參數(shù)的個(gè)數(shù)。??
2、例子1:?
#!/bin/bash?
num1=$1?
num2=$2?
sum=$(($num1+$num2))?
?#變量 sum 的和是 num1 加 num2?
echo $sum?
?#打印變量 sum 的值?
執(zhí)行腳本: $ ./test.sh 45 76?
3、例子2?
#!/bin/bash?
echo "A total of $# parameters"?
#使用 $# 代表所有參數(shù)的個(gè)數(shù)?
echo "The parameters is:$*"?
#使用 $* 代表所有的參數(shù)?
echo "The parameters is:$@"?
#使用 $@ 代表所有的參數(shù)?
執(zhí)行腳本: $ ./test.sh 11 22 33 44??
4、例子3:$* 與 $@ 的區(qū)別?
#!/bin/bash?
for i in "$*"?
# $* 中所有參數(shù)看成是一個(gè)整體,所以這個(gè) for 循環(huán)只會(huì)循環(huán)一次?
do
????echo "The parameters is:$i"?
done?
?for y in "$@"?
# $@ 中每個(gè)參數(shù)都看成是獨(dú)立的,所以 $@ 中有幾個(gè)參數(shù),就會(huì)循環(huán)幾次?
do
????echo "Parameter:$y"?
done
查看全部 -
當(dāng)前語(yǔ)系查詢:locale ?//直接生效的是LANG變量(默認(rèn)語(yǔ)系) ?LC_ALL:定義整體語(yǔ)系(不常用)?
echo $LANG ? ?//當(dāng)前語(yǔ)系環(huán)境?
echo $LC_ALL ?//整體語(yǔ)系環(huán)境?
locale -a | more 查看Linux支持的所有語(yǔ)系環(huán)境?
cat /etc/sysconfig/i18n ?centos7 cat /etc/locale.conf? //下次開機(jī)以后的系統(tǒng)環(huán)境
LANG=zh_CN.UTF-8?//切換成中文
查看全部 -
1、環(huán)境變量與用戶自定義變量的區(qū)別?
環(huán)境變量是全局變量,用戶自定義變量是局部變量。?
用戶自定義變量只在當(dāng)前的 shell 中生效,環(huán)境變量在當(dāng)前 shell 和這個(gè) shell 的所有子 shell 中生效。?
用戶可以自定義環(huán)境變量,但對(duì)系統(tǒng)生效的環(huán)境變量名和變量作用是固定的。
2、用戶自定義環(huán)境變量?
$ export 變量名=變量值 或 $ 變量名=變量值 $ export 變量名
3、查看環(huán)境變量?
$ set 查看所有變量?
$ env 查看環(huán)境變量?
4、刪除環(huán)境變量?
$ unset 環(huán)境名??
5、常用的環(huán)境變量?
HOSTNAME:主機(jī)名?
SHELL:當(dāng)前的 shell?
TERM:終端環(huán)境?
HISTSIZE:歷史命令條數(shù)?
SSH_CLIENT:當(dāng)前操作環(huán)境是用 ssh 連接的,這里記錄客戶端 ip?
SSH_TTY:ssh 連接的終端是 pts/1?
USER:當(dāng)前登錄的用戶?
PATH:系統(tǒng)搜索命令的路徑?
要想直接通過(guò)腳本名執(zhí)行自己的腳本:?
(1)將腳本拷貝至 PATH 中的任意目錄下(不建議這樣做),例如: $ cp hello.sh /bin/?
(2)將腳本所在目錄添加到 PATH 變量中,例如: $ PATH="$PATH":/root/sh 但系統(tǒng)重啟后失效?
PS1:命令提示符設(shè)置?
\d:顯示日期,格式為"星期 月 日"?
\H:顯示完整的主機(jī)名?
\t:顯示 24 小時(shí)制時(shí)間,格式為"HH:MM:SS"?
\A:顯示 24 小時(shí)制時(shí)間,格式為"HH:MM"?
\u:顯示當(dāng)前用戶名?
\w:顯示當(dāng)前所在目錄的完整名稱?
\W:顯示當(dāng)前所在目錄的最后一個(gè)目錄?
\$:提示符。root 用戶為"#",普通用戶為"$"
查看全部 -
1、變量=值 e.g. x=5 注意,變量名只能是字母、下劃線、數(shù)字組成且不能以數(shù)字開頭,=號(hào)左右不可有空格
2、""會(huì)解析特殊符號(hào),例如$,''不會(huì)解析特殊符號(hào)?
3、引用變量:$變量名 ?例如:$x?
4、所有變量默認(rèn)的值都是字符串類型,不可做Math運(yùn)算?
5、變量疊加 e.g ?y="$x"123 ?或者 y=${x}123?
6、查看變量 set 會(huì)列出系統(tǒng)中所有的變量,包括環(huán)境變量和自定義變量 ? set -u //設(shè)定當(dāng)調(diào)用不存在變量時(shí),會(huì)提示錯(cuò)誤?
7、刪除變量 unset 變量名 例如:unset x
查看全部 -
變量命名規(guī)則?
開頭為字符或下劃線,名字中間中能有字母、數(shù)字和下劃線組成;?
變量的長(zhǎng)度不超過(guò)255個(gè)字符;?
變量名在有效的范圍內(nèi)必須是唯一的; ?//如再次定義則會(huì)替換上一個(gè)變量的值?
在Bash中,變量的默認(rèn)類型都是字符串型. ?//即系統(tǒng)把所有值都當(dāng)作字符串放到變量中,不論這個(gè)“字符串”實(shí)際上是整數(shù)、浮點(diǎn)數(shù)等等
變量的分類
用戶自定義變量
環(huán)境變量
位置參數(shù)變量 ?//實(shí)際就是預(yù)定義變量
預(yù)定義變量
查看全部 -
變量只能是字母下劃線開頭,不能是數(shù)字開頭。
變量只能有字母,數(shù)字,下劃線組成。
查看全部 -
locale支持的語(yǔ)系 $LANG 當(dāng)前支持的語(yǔ)系$LANG 默認(rèn)支持的語(yǔ)系 支持的所有語(yǔ)系查看全部
-
環(huán)境變量,包含系統(tǒng)環(huán)境變量和自定義環(huán)境變量 系統(tǒng)環(huán)境變量,是操作系統(tǒng),所使用的變量 注PS1 PATH查看全部
-
接收鍵盤輸入
查看全部 -
預(yù)定義變量
查看全部 -
$*? 與 $@? 的區(qū)別
查看全部 -
位置參數(shù)變量
查看全部 -
Linux中文支持
查看全部
舉報(bào)