Bash Shell学习笔记一
1.
?在Linux中執行腳本文件時 以 ./執行的 或者普通方式(輸入文件名)執行時是啟動子shell執行的,所以,一切環境變量設置在推出后失效
?
?因此在腳本中設置$PATH將失效,如果一定要以腳本方式來設置,需要 .+空格+文件名或者 source 腳本文件的形式執行.
?
2.
Linux中的" " 和 ' ',雙引號和單引號的區別是,單引號比雙引號要嚴格,雙引號會自動解釋$開始的變量,而單引號不會.
?
3.
Linux中將命令執行的結果作為變量可以使用
$(XXX)或者'XXX`,這里'是鍵盤左上角Tab上面的引號
?
4.
從字符串頭截去字符
${string##XX*} -----從左邊開始搜索string變量截去最后一個碰到的XX字符之前的所有內容后剩下的字符
如:
string=asfadfasd
${string##f*}=asd
${string#XX*}--------從左邊開始搜索string變量截去第一個碰到的XX字符之前的所有內容后剩下的字符
如:
string=asfadfasd
${string#f*}=adfasd
?
5.
從字符串尾部截去字符
${string%%XX*} -----從右邊開始搜索string變量截去最后一個碰到的XX字符之后的所有內容后剩下的字符
${string%XX*} -----從右邊開始搜索string變量截去第一個碰到的XX字符之后的所有內容后剩下的字符
如:
?
string=asfadfasd
${string%%f*}=as
${string%f*}=asfad
?
?
6.
從字符串中去除指定的字符或字符串,替換字符串中指定的字符或字符串
${string/str1/str2} ----將string變量中第一個出現的str1替換為str2
${string//str1/str2}----將string變量中所有出現的str1替換為str2
如:
${linfengfeiye/fe/sc} = linscngfeiye
${linfengfeiye//fe/sc}=linscngsciye
?
7.
提取字符串
${string:position:length}---提取string變量中從position開始的length個字符(注意下標從0開始)
${string:position}--提取string變量中從position開始到末尾的字符
?
8.
eval關鍵字使用:取變量的值所對應的變量值
已知:aaa1=test,A=aaa,B=1
取test
TMP=$A$B
eval T="$"$TMP
echo $T
?
9.
測試變量字符串長度是否為0(是否為空)
if [ -z $var ] 或者 if [ ! -n $var ]
如:
var=""
if [ -z $var ]
then
echo 1
else
echo 2
fi
得到 1,為空
?
10.
文件測試選項 (下面都是對應了取真值的例子)
?
if [ -d $file ] --存在并且是目錄
if [ -x $file ] --存在并且可執行
if [ -e $file ] 或者 if [-a $file] --存在
if [ -r $file ] --存在并且可讀
if [ -w $file ] --存在并且可寫
?
?
?
總結
以上是生活随笔為你收集整理的Bash Shell学习笔记一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux查看和剔除当前登录用户
- 下一篇: 直播带货更赚钱?新东方在线正式更名为东方