Shell编程之算数运算和脚本变量

110 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

算数运算

整数变量的运算

  • expr 数值或变量 运算符 数值

  • $((数值 运算符 数值))

  • $[数值 运算符 数值]

  • Let 变量=数值 运算符 数值

运算符

  • 加法 +
  • 减法 -
  • 乘法 \ *
  • 除法 /
  • 取余 (取模)%

expr

image.png

echo $((数值 运算符 数值))

image.png

$[数值 运算符 数值]

image.png

Let 变量=数值 运算符 数值

image.png

浮点数运算

echo “数值+数值” | bc

awk ‘BEGIN {print 浮点运算表达式}’

image.png

变量

变量类型

  • 全局变量:全局生效,在任何bash环境中都可以识别。
  • 局部变量:生效范围为当前shell进程。对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效。

特殊变量

  • 环境变量(全局变量):全局生效,在任何bash环境中都可以识别。:

  • 只读变量:readonly, 只可以读取不可以更改 。

  • 位置变量: 通过命令行给脚本传递参数 。{10} 要加花括号。

  • 预定义变量:用来保持脚本程序的执行信息。

    • $0 :当前脚本名称(如果是软链接,显示当前软链接文件名)。
    • $? :查看上一次命令的执行状态,返回0为正常,非0为错误。
    • $* :返回所有参数,当整体返回。
    • $@ :返回所有参数,当个体返回。
    • $# :获取当前shell命令行中参数的总个数。

设置变量

直接赋值为局部变量,使用export可临时设置为全局变量,重启失效 image.png

read 变量名

  • -p:后面跟提示信息,即在输入前打印提示信息。

image.png

环境变量

由系统提前创建,用来设置用户的工作环境

常用环境变量:

  • $PATH 表示可执行文件的默认路径
  • $USER 表示用户名称
  • $HOME 表示用户的宿主目录
  • $LANG 表示语言和字符集
  • $PWD 表示当前所在工作目录

设置永久环境变量

修改/etc/profile,修改此文件会作用于所有用户

image.png

image.png

只读变量

我们在定义shell变量时,默认定义的变量是可以被修改的,但有一种变量是不能修改的,就是只读变量。只读变量只能被赋值一次。只读变量在取得初始值之后,只能进行读取操作,不能重新赋值或删除

readonly 变量

image.png

位置变量

位置变量也称为位置参数。使用$n表示,n为数字序列号,且必须为整数。

例如:$1$2、…、$9 、${10}${11}

两位数需要加花括号{},不然$10会被识别为:$1和0

预定义变量

-   $0 :当前脚本名称(如果是软链接,显示当前软链接文件名)。
-   $? :查看上一次命令的执行状态,返回0为正常,非0为错误。
-   $* :返回所有参数,当整体返回。
-   $@ :返回所有参数,当个体返回。
-   $# :获取当前shell命令行中参数的总个数。