歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

Linux Bash Shell學習筆記,bash學習筆記

Linux Bash Shell學習筆記,bash學習筆記


Linux Bash Shell學習筆記,bash學習筆記


參數擴展:


1.被名稱引用的參數稱作變量
2.被數字引用的參數稱作位置參數
3.被特定符號引用的參數具有特殊的含義和用途,被稱作Bash的特殊內部變量引用。

基本參數擴展:
字符$會引導參數擴展。大括號是可選的,但是大括號可以保護待擴展的變量,使得緊跟大括號後面的內容不會被擴展。
例:

1 $ PARAMETER
2 $ {PARAMETER}
3 #如果參數名後跟其他字符,大括號是必須的。
4 
5 $ WORD=car
6 $ echo $WORDs
7 $ echo ${WORD}s 8 cars

 

 對於$9後面的參數也是要用大括號的。
注意:參數名是大小寫敏感的。

間接參數擴展:

1 $ PARAMETER=TEMP
2 $ TEMP="It's indirect"
3 $ echo $PARAMETER
4   TEMP
5 $ echo ${!PARAMETER}
6 it's indirec

 

大小寫修改(Bash4.0):

 1 $ echo ${PARAMETER^}
 2 #將參數的第一個字符改為大寫
 3 $ echo ${PARAMETER^^}
 4 #將參數的全部字符改為大寫
 5 $ echo ${PARAMETER,}
 6 #將參數的第一個字符改為小寫
 7 $ echo ${PARAMETER,,}
 8 #將參數的全部字符改為小寫
 9 $ echo ${PARANETER~}
10 #將參數的第一個字符改為大寫
11 $ echo ${PARANETER~~}
12 #將參數的全部字符改為大寫

 

大小寫修改實例:

1 # for file in *.txt
2 >do
3 >mv "$file" "${file,,}"
4 >done

 

變量名擴展:

1 ${!PREFIX*}
2 ${!PREFIX@}
3 #列出以字符串PREFI開頭的所有變量名

 

例:列出以BASH開頭的所有變量名

1 $echo ${!BASH*}
2 BASH BASHOPTS BASHPID BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS BASH_COMMAND BASH_LINENO BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION

字符串移除:

1 ${PARAMETER#PATTERN}
2 ${PARAMETER##PATTERN}
3 #移除從參數值的開頭匹配指定模式的字符串
4 ${PARAMETER%PATTERN}
5 ${PARAMETER%%PATTERN}
6 #移除從參數值的結尾匹配指定模式的字符串
7 #”#“和”%“表示移除匹配指定模式的最短文本,”##“和”%%“表示移除匹配模式的最長文本。

 

字符串移除實例:

 1 $ MYSTRING="This is used for removing string"
 2 $ echo ${MYSTRING#* }
 3 is used for removing string
 4 
 5 $echo ${MYSTRING##* }
 6 string
 7 
 8 $echo ${MYSTRING% *}
 9 This is used for removing
10 
11 $echo ${MYSTRING%% *}
12 This

 

參數用途,提取文件名的一部分:

 1 $ FILENAME=linux_bash.txt
 2 
 3 $ echo ${FILENAME%.*}                       #移除文件名的後綴
 4 linux_bash
 5 
 6 $ echo ${FILENAME##*.}                     #移除文件名,保留後綴
 7 txt 
 8 
 9 FILENAME=/home/book/linux_bash.txt
10 
11 $ echo ${FILENAME%/*}                      #移除文件名,保留目錄名
12 /home/book
13 
14 $ echo ${FILENAME##*/}                    #移除目錄名,保留文件名
15 linux_bash.txt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

http://xxxxxx/Linuxjc/1155074.html TechArticle

Copyright © Linux教程網 All Rights Reserved