shell变量的设置规则

1、变量设置规则

便量设置规则

2、变量赋值与运算

1)变量赋值:
name=lbg 等号前后不能有空格
name=“Lebron James” 变量值中有空格要用双引号
echo n a m e 用 {name} 用 name{}更保险
shopt -s -o nounset 设置“先声明再使用”

2)取消变量:
unset 释放变量和函数的内存

3)特殊变量(位置参数)
${n}:输入的第n个参数($0表示脚本名字,$1-$9表示输入的第1至9个参数,十以上的参数要用花括号表示)
$#:输入参数的数量(即上面花括号中的n值)
$@:输入的所有参数,但把每个参数区分对待
$*:代表输入的所有参数,并把所有的参数看成一个整体
$!:输入的最后一个参数
$?:上一个命令的返回值(用于在脚本中判断之前命令的执行状态,任何非0的返回都表示非正常执行)

示例:

$ cat test.sh
#!/bin/bash
echo $0
echo $1
echo $2
echo $#
echo $@
$ ./test.sh test1.txt test2.txt
./test.sh
test1.txt
test2.txt
2
test1.txt test2.txt

4)数组:
declare -a Array=(‘ladawn’ ‘lbg’ ‘lbj’)

5)只读变量:
declare -r N=10
readonly N=10

6)函数中的变量:
若不声明local,则函数中的变量也为全局变量。
若声明为local(local var=200),则变量的作用域只在函数内。

7)引用:
双引号:弱引用,特殊符号($、\、`)仍然解析为特殊的意义。
单引号:强引用,所有的字符都是字面意思,不再有特殊意义。

8)命令替换:
A=$(data)或者A=data,表示将data命令的输出结果取出,赋给A

9)bc运算:
用于浮点数计算输出。通过管道使用。
tatal=$(echo “34/15” | bc)

10)数值运算:

let “sum+=1” #表示sum = sum+1
let “j=sum%2” #表示j = sum % 2

参考:https://www.cnblogs.com/ladawn/p/8412553.html

3、shell整数运算

方法一:expr

expr 1+2
expr $num1 + $num2
sum expr $num1 + $num2

方法二:$(())

echo $((num1+num2))
echo $((2**10)) #2的10次方

方法三:let

let sum=1+1
let i++

4、shell小数运算

echo “2*4” |bc
echo “2**4” |bc
echo “scale=2;6/4” |bc
echo ‘BEGIN{print 1/2}’
echo “print 5.0/2” | python
num=$(echo “scale=2; 0.13 + 0.1” | bc)
echo $num

运行脚本,结果显示为:.23
我发现shell中显示小于1的小数,小数点前都没有0
bc本身还没有选项来设置输出小数点前的0,只能用别的方法进行格式化输出了,比如:

echo “scale=2; 0.13 + 0.1” | bc | awk ‘{printf “%.2f”, $0}’

5、shell运算符

对于字符串运算只能用:> 、 < 、 ==(==和=等效)、 != 、 -n(长度是否非0) 、 -z(长度是否为0),注意:没有>=和<=运算符
对于数字运算有两种方式:> 、 < 、 == 、 != 和 -eq(等于)、-ge(大于等于)、-gt(大于)、-le(小于等于)、-lt(小于),主要倾向于第二种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值