shell基础之变量、字符串、获取参数、算数运算符

二、变量

1、定义变量

注: 变量名和等号之间不能有空格
命名规则: 变量名由字母数字下划线组成,且不能以数字开头,不能包含bash里面的关键字

1.1 直接赋值
a="hello"
b=10
1.2 使用语句赋值
for i in `ls /Desktop`
for f in $(ls /Desktop)
2、使用变量

在变量名前加$即可,防止变量边界解释器无法识别,在变量名外加花括号.
vim test.sh

#!/bin/bash
a=10
b="hello"
echo ${a}
echo "${b}world"

./test.sh

10
helloworld
3、修改变量为只读

readonly 变量名

4、删除变量

unset 变量名
只读变量不能被unset删除

三、字符串

1、定义字符串

字符串可以用单引号,双引号,或者不用引号.
单引号里面内容原样输出,内容中不能出现单个单引号,可出现一对单引号,用于字符串拼接.
双引号里面可以有变量和转义字符,输出结果为变量值.

python@ubuntu:~/shellscrip$ name=world
python@ubuntu:~/shellscrip$ echo 'hello,$name'
hello,$name
python@ubuntu:~/shellscrip$ echo 'hello,'$name''
hello,world
python@ubuntu:~/shellscrip$ echo "hello,$name"
hello,world

2、获取字符串长度

${#变量名}

python@ubuntu:~/shellscrip$ name=world
python@ubuntu:~/shellscrip$ echo ${#name}
5
3、获取子字符串

${变量名:索引:字段长度}

python@ubuntu:~/shellscrip$ name=world
python@ubuntu:~/shellscrip$ echo ${name:1:2}
or

注:索引起始为0

4、查找子字符串
python@ubuntu:~/shellscrip$ name=world
python@ubuntu:~/shellscrip$ echo `expr index $name ol`
2

注:ol在world中o先出现,故返回o所在位置的下标,此时下标从1开始

四、获取参数

$0 获取文件名
$# 获取参数个数
$* 获取所有参数,将所有参数组成一个字符串,返回的是字符串
$@ 获取所有参数,返回的是包含所有参数的容器
$1 获取第一个参数
$2 获取第二个参数,以此类推

python@ubuntu:~/shellscrip$ vim test.sh 
  1 #!/bin/bash
  2 echo "获取文件名:$0"
  3 echo "获取参数个数:$#"
  4 echo "获取第一个参数:$1"
  5 echo "获取第二个参数:$2"
  6 echo "获取第三个参数:$3"
  7 echo "获取所有参数方式一:$*”
  8 echo "===================="
  9 echo "获取所有参数方式二:$@"
python@ubuntu:~/shellscrip$ ./test.sh a b c
获取文件名:./test.sh
获取参数个数:3
获取第一个参数:a
获取第二个参数:b
获取第三个参数:c
获取所有参数方式一:a b c 
====================
获取所有参数方式二:a b c

$* 和 $@ 的区别:

  1 #!/bin/bash
  2 echo "\$* 遍历:"
  3 for i in " $*";do
  4     echo ${i}
  5 done
  6 echo "\$@ 遍历:"
  7 for i in "$@";do
  8     echo $i
  9 done

执行结果:


python@ubuntu:~/shellscrip$ ./test.sh a b c
$* 遍历:
a b c
$@ 遍历:
a
b
c

五、算数运算符

1.不支持简单算数运算

python@ubuntu:~/shellscrip$ h=1+2
python@ubuntu:~/shellscrip$ echo $h
1+2

2.可通过命令来实现
方式一:
表达式和运算符之间要有空格

python@ubuntu:~/shellscrip$ echo `expr 1 + 2 `
3
python@ubuntu:~/shellscrip$ echo `expr 1 \* 2`
2
python@ubuntu:~/shellscrip$ echo `expr 1 / 2`
0
python@ubuntu:~/shellscrip$ echo `expr 1 % 2`
1

python@ubuntu:~/shellscrip$ echo `expr 1 - 2`
-1

方式二:

python@ubuntu:~/shellscrip$ echo $((1+1))
2
python@ubuntu:~/shellscrip$ echo $((1-1))
0
python@ubuntu:~/shellscrip$ echo $((1*2))
2
python@ubuntu:~/shellscrip$ echo $((2/4))
0
python@ubuntu:~/shellscrip$ echo $((2%4))
2

方式三:

python@ubuntu:~/shellscrip$ echo $[1+4]
5
python@ubuntu:~/shellscrip$ echo $[1-4]
-3
python@ubuntu:~/shellscrip$ echo $[1*4]
4
python@ubuntu:~/shellscrip$ echo $[1/4]
0
python@ubuntu:~/shellscrip$ echo $[1%4]
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值