四时宝库

程序员的知识宝库

Shell编程之变量(shell编程变量的声明和使用)

【1】Bash变量

●什么是变量与变量分类

◆在Bash中,变量的默认类型都是字符串

◆变量名在有效的范围内必须是唯一的

●用户自定义变量

◆变量自定义的

◆定义变量

★变量名=变量值;x=5 #“=”两边不能有空格

name="ao"

◆变量调用

★echo $变量名;echo $x #调用变量需要在变量前+$

echo $name

◆变量叠加

★x=123

x="$x"123

echo $x ;123123

◆变量查看

★set 查询系统能够所有生效变量

-u 调用未声明变量时会报错

●环境变量

◆这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的

◆用户自定义变量只在当前的shell中生效,环境变量在当前shell和这个shell的所有子shell中生效

◆对系统生效的环境变量名和变量作用是固定的

◆设置环境变量

★export 变量名=变量值

◆变量查看

★env

◆常用环境变量

★PATH变量:系统查找命令的路径

echo $PATH #查看PATH环境变量

PATH="$PATH":/root/sh #增加PATH变量值

★PS1变量:命令提示符设置

◆当前语系查询

★locale #查询当前语系系统

LANG :定义系统主语系的变量

LC_ALL:定义整体语系的变量

★locale -a #查看Linux支持的所有语系

●位置参数变量

◆这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的

◆$n ★n为数字,$0代表命令本身,$!-$9代表第一到第九个参数,10以上的参数需要用大括号包含,如${10}

◆$* ★这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体

◆$@ ★这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待

◆$# ★这个变量代表命令行中所有参数的个数

◆#!/bin/bash

num1=$1 #第一个参数的值

num2=$2

num=$(($num1+$num2)) #将$1+$2的值相加

echo "\$ :$num" #“\”转义符

./canshu1.sh 12 23

◆ #!/bin/bash

for i in "$@"

do

echo $i #循环输出"$@"中的值

done

for i in "$*"

do

echo $i #循环输出"$*"中的值

done

●预定义变量

◆是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

◆$? ★最后一次执行命令的返回状态,正确执行为0,不能正确为 非0

◆$ ★当前进程的PID号

◆$! ★后台运行的最后一个进程的PID号

◆ #!/bin/bash

echo "\$ = $" #当前进程

echo "\$! = $!" #最后一个进程

●接受键盘输入

◆read [选项][变量名]

★选项

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

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

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

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

◆ #!/bin/bash

read -p "input you name: "-t 15 -n 6 -s name

echo $name

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接