(四)bash中的运算符

8: Bash  的变量和运算符linux

1:Bash变量与其余编程语言的不一样shell

(1)在 Bash 中,变量的默认类型都是字符串型,若是要进行数值运算,则必修指定变量类型为数值型。编程

(2)变量用等号链接值,等号左右两侧不能有空格。bash

(3)变量的值若是有空格,须要使用单引号或双引号包括。如:“test="hello world!"”。其中双引号括起来的内容“$”、“\”和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。 在变量的值中,可使用“\”转义符。 若是须要增长变量的值,那么能够进行变量值的叠加。不过变量须要用双引号包含"$变量名dom

"或用${变量名}包含变量名ssh

 

2:变量的分类编程语言

  用户自定义变量:这种变量是最多见的变量,由用户自由定义变量名和变量的值。命令行

  环境变量:这种变量中主要保存的是和系统操做环境相关的数据,好比当前登陆用户,用户的家目录,命令的提示符等。环境变量的变量名能够自由定义,可是通常对系统起做用的环境变量的变量名是系统预先设定好的。进程

  位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量做用是固定的。ip

  预约义变量:是 Bash 中已经定义好的变量,变量名不能自定义,变量做用也是固定的。

 

(1)自定义变量

用户自定义变量:#等号左右两侧不能有空格

[root@localhost ~]# name=123

echo $name

变量的增删改查:

增长 :name=123,

改:name=567直接覆盖,

删除:unset name 删除变量,能够理解为释放变量的内存空间

查询:查看变量是否已经定义,或者系统定义了多少变量。

 

set 命令[选项]

选项:

-u:  若是设定此选项,调用未声明变量时会报错(默认无任何提示)

-x: 若是设定此选项,在命令执行以前,会把命令先输出一次

 

(2)系统环境变量

1:环境变量设置

export age="18"

 

2: 环境变量查询和删除

env 命令和 set 命令的区别是,set 命令能够查看全部变量,而 env 命令只能查看环境变量。

[root@localhost ~]# unset gender

[root@localhost ~]# env | grep gender

 

3:系统默认环境变量

HOSTNAME=localhost.localdomain 主机名

SHELL=/bin/bash 当前的 shell 

TERM=linux  终端环境

HISTSIZE=1000   历史命令条数

SSH_CLIENT=192.168.4.159 4824 22  当前操做环境是用 ssh 链接的,这里记录客户端 ip

SSH_TTY=/dev/pts/1

例如:PATH="$PATH":/root/sh 修改系统bin执行路径添加sh

 

4: LANG 语系变量

LANG 变量定义了 Linux 系统的主语系环境,这个变量的默认值是:

[root@localhost src]# echo $LANG

 

(3)位置参数变量

$n:  n 为数字,$0 表明命令自己,$1-$9 表明第一到第九个参数,十以上的参数须要用大括号包含,如${10}.

$*  这个变量表明命令行中全部的参数,$*把全部的参数当作一个总体.

$@  这个变量也表明命令行中全部的参数,不过$@把每一个参数区分待

$#  这个变量表明命令行中全部参数的个数.

$1表示的是第一个参数,$0表示的是命令自己。

[root@localhost sh]# more parment.sh

#!/bin/bash

 

for i in $*  #循环输出

    do

      echo "The paramenters is : $i"

done

 

for y in "$@"

#一样 in 后面的有几个值,for 循环几回,每次都把值赋予变量 y

#但是 Shell 中把“$@”中的每一个参数都当作是独立的,因此“$@”中有几个参数,就会循环几回

do

echo "The parameter$x is: $y"

#输出变量 y 的值

x=$(( $x +1 ))

#然变量 x 每次循环都加 1,为了输出时看的更清楚

done

 

(4)预约义变量:

$?  最后一次执行的命令的返回状态。若是这个变量的值为 0,证实上一个命令正确执行;若是这个变量的值为非 0(具体是哪一个数,由命令本身来决定),则证实上一个命令执行不正确了。

$$  当前进程的进程号(PID)

$!  后台运行的最后一个进程的进程号(PID)

 

9: 接收键盘输入

read [选项] [变量名]

选项:

-p “提示信息”:  在等待 read 输入时,输出提示信息

-t 秒数:  read 命令会一直等待用户输入,使用此选项能够指定等待时间

-n 字符数: read 命令只接受指定的字符数,就会执行

-s:隐藏输入的数据,适用于机密信息的输入

 

变量名:变量名能够自定义,若是不指定变量名,会把输入保存入默认变量 REPLY。若是只提供了一个变量名,则整个输入行赋予该变量。若是提供了一个以上的变量名,则输入行分为若干字,一个接一个地赋予各个变量。

相关文章
相关标签/搜索