Linux Bash Shell学习笔记
Posted 奔波在大路上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Bash Shell学习笔记相关的知识,希望对你有一定的参考价值。
参数扩展:
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 ${![email protected]}
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
以上是关于Linux Bash Shell学习笔记的主要内容,如果未能解决你的问题,请参考以下文章