shell脚本之定义变量

有一些关于shell变量名的规则:

  1. 变量名可由字母数字字符(字母和数字)和下划线字符组成。

  2. 变量名的第一个字符必须是一个字母或一个下划线。

  3. 变量名中不允许出现空格和标点符号。

注意在赋值过程中,变量名,等号和变量值之间必须没有空格。那么,这些值由什么组成呢? 可以展开成字符串的任意值:

a=z                     # Assign the string "z" to variable a.
b="a string"            # Embedded spaces must be within quotes.
c="a string and $b"     # Other expansions such as variables can be
                        # expanded into the assignment.

d=$(ls -l foo.txt)      # Results of a command.若是在上层目录需要d=$(ls -l ../foo.txt)

e=$((5 * 7))            # Arithmetic expansion.

字符串变量

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了,哈哈),字符串可以用单引号,也可以用双引号,也可以不用引号。

单引号

str='this is a string'

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)

双引号

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"
  • 双引号里可以有变量
  • 双引号里可以出现转义字符

字符串操作

拼接字符串
your_name="qinjx"
greeting="hello, "$your_name" !"   //输出hello,qinjx
greeting_1="hello, ${your_name} !"   //输出hello,qinjx
greeting_1="hello, "${your_name}" !"  //输出hello,qinjx
greeting_1="hello, \"${your_name}\" !"  //输出hello,"qinjx"
获取字符串长度:
string="abcd"
echo ${#string} #输出:4  //字符串前面加#,输出字符串长度
提取子字符串
string="alibaba is a great company"
echo ${string:1:4} #输出:liba
查找子字符串
string="alibaba is a great company"
echo `expr index "$string" is`#输出:8,这个语句的意思是:找出单词is在这名话中的位置。小撇是在~下面那个。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值