变量与字符串
【变量】
▪变量设置规则
1、变量名可以由字母、数字和下划线级,但不能以数字开头。
2、在bash中,变量默认类型都是字符串类型,如果要进行数值运算,必须指定变量类型为数值类型。
3、变量用等号连接值,等号左右两侧不能有空格。
4、变量的值中,可以使用转义符\
5、如果需要增加变量的值,可以进行变量值的叠加。 不过变量需要用双引号包含"$变量名",或用${变量名}包含。
6、如果把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。
▪定义变量
your_name="jim green" #变量名和等号之间不能有空格
▪使用变量
your_name="testname"
echo $your_name
echo ${your_name}
echo "I am good at ${skill}Script"
echo "I am good at ${skillScript}"
加花括号是为了帮助解释器识别变量的边界
your_name="tom"
your_name="jim"
变量可以被重新定义
▪只读变量
myUrl="www.baidu.cc"
readonly myUrl
myUrl="www.sina.com"
使用 readonly 命令定义的变量的值不能被改变
▪删除变量
unset variable_name
unset 命令不能删除只读变量
▪变量类型
1) 局部变量 仅在当前shell实例中有效。
2) 环境变量 所有的程序,都能访问环境变量。
3) shell变量 shell变量中有一部分是环境变量,有一部分是局部变量。
●Bash中的数学运算 一 root@centos:~ # a=1 root@centos:~ # b=2 root@centos:~ # c=$(($a+$b)) 二: root@centos:~ # a=1 root@centos:~ # b=2 root@centos:~ # c=$[$a + $b] 三: root@centos:~ # a=1 root@centos:~ # b=2 root@centos:~ # c=`expr $a + $b` 四: root@centos:~ # a=1 root@centos:~ # b=2 root@centos:~ # let c=$a+$b 五: root@centos:~ # a=1 root@centos:~ # b=2 root@centos:~ # declare -p a root@centos:~ # declare -p b root@centos:~ # declare -i c=$a+$b
▪交互脚本
例1:
#!/bin/bash
read -p "please input name:" name
echo ${name}
例2:用echo -n实现
#!/bin/bash
echo -n "contine or not [y/n]:"
read contine
echo ${contine}
【字符串】
▪单引号
str='this is a string'
单引号字符串的限制:
1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
2、单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
▪双引号
your_name='testname'
str="Hello, I know your are \"$your_name\"! \n"
双引号的优点:
双引号里可以有变量
双引号里可以出现转义字符
▪拼接字符串
your_name="testname"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
▪获取字符串长度
string="abcd"
echo ${#string}
▪查找子字符串
string="baidu is a great company"
echo `expr index "$string" is`
解释:
"index string chars"用法示例。
该表达式是从string中搜索chars中某个字符的位置,这个字符是string中最靠前的字符。例如:
# expr index abcde dec
3
该命令将对字符串"dec"逐字符分解,首先分解得到第一个字符d,从abcde中搜索到d的位置为4,
再分解得到第二个字符e,该字符在abcde中的位置为5,最后得到的字符是c,该字符在abcde中的位置为3。
其中3是最靠前的字符,所以命令返回的结果为3。
# expr index abcde xdc
3
如果chars中的所有字符都不存在于string中,则返回0。
--------------------------
------山的那一边

浙公网安备 33010602011771号