变量的显示与设置:
- echo
语法:echo $variable
注意事项:
等号两边不能直接接空格;
可用转义字符'\'将特殊符号($,\,!,空格,回车等)变成一般字符;
增加变量内容可输入:"$variable"或${variable}累加内容,例如 : home="$home"address;
若该变量需要在其他子进程中执行,则需要以export来使其变成环境变量,例如 export PATH;
一般情况下,父进程的自定义变量是无法在子进程中使用的;
使用大写字母来设置的变量一般为系统内定需要的变量;
思考题:
变量设置中,单引号和双引号的区别在哪里?
Answer:单引号不保留变量的内容,仅能是一般字符,而双引号保有变量的内容。
例子:
root# name=lms
root# echo $name
lms
root# myname='$name its me'
root# echo $myname
$name its me
root# myname="$name its me"
root# echo $myname
lms its me
- env
查看环境变量
- set
查看所有变量
-read
读取来自 键盘输入的变量
root# read sum
123
root# echo $sum
123
-p 接提示语
-t 接等待秒数
- declare
语法:
declare [-axir] variable
参数:
-a 定义后面变量为数组类型;
-x 与export用法一致,将变量变成环境变量;
-i 定义后面变量为数字类型;
-r 将变量设置为只读模式;
root@Dashuo:/home/manshuo# declare -r sum
root@Dashuo:/home/manshuo# sum=1
bash: sum: 只读变量
语法:
echo ${path#/*kerberos/bin:}
删除path变量中从最前面开始最短匹配/*kerberos/bin:的内容
*号代表任意字符
echo ${path##/*kerberos/bin:}
删除path变量中从最前面开始最长匹配/*kerberos/bin:的内容
echo ${path%/*bin}
删除path变量中从最后面开始最短匹配/*bin的内容
echo ${path%/*bin}
删除path变量中从最后面开始最长匹配/*bin的内容
语法:
${variable/旧字符串/新字符串} #替换第一个旧字符串
${variable//旧字符串/新字符串} #替换所有旧字符串
将456替换成678:
root@Dashuo:/home/manshuo# echo $my_path
/123/456/we/are
root@Dashuo:/home/manshuo# echo ${my_path/456/678}
/123/678/we/are