变量与字符串

【变量】
▪变量设置规则

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
View Code
 ▪交互脚本
  例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。
--------------------------

  

posted @ 2019-03-18 13:46  山的那一边  阅读(299)  评论(0)    收藏  举报