您的位置:首页 > 运维架构 > Shell

Shell 编程基础之变量

2017-05-16 00:14 721 查看

Bash的变量与分类

什么是变量

变量的命名规则

在bash中变量的默认的类型是字符串类型 // 别扭

变量分类: 用户自定义变量(变量自定义的), 环境变量(对系统生效的环境变量是固定的), 位置参数变量(预定以变量)(主要像脚本当中传递参数或数据,变量不能自定义,变量作用是固定的)。

1)变量定义

双引号和单引号有区别。

x=5

name = “jie cao”

变量调用 echo nameechox (注意输出字符5)

变量叠加

x=”x”456x=”x”123

set -u 用来区分空变量域不存在变量的调用输出

unset name 删除变量,前面不加操作符,全部清空。

2)shell的运算符

4) bash环境变量

5) bash 语系变量

6) 位置参数变量

7) 预定义变量

bash进入一个子shell

pstree 查看shell关系

环境变量是全局变量,用户自定义变量是局部变量(只在当前shell可以看到)。对系统生效的环境变量和变量作用是固定的。

set 查看所有变量

env 查看环境变量

unset 删除变量

变量名= 变量值

常用的环境变量,

环境变量不但对shell生效,对子shell也生效。

1.Path

2.PS1 定义终端提示符类型

3.PS2 ls \ 当前命令没有完成,一行盛不下,显示提示继续输入

语系变量: locale: 查看当前系统语系

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

LC_ALL: 定义整体语系的变量

locale -a 所有语系

默认语系。

中文可以用zhcon

位置参数变量

read命令

n0 代表命令本身 1−9代表第一到第九个参数,10以上的参数需要用大括号包含。如${10}.可以类比main函数,向脚本传递值

∗会把所有的参数返回,看成一个整体。@ 把所有参数返回,把参数分开看。

$# 返回参数的个数。

for循环

for i in "$@"
do
echo $i
done


这种传值方式不太好,用read,后边讲。

预定以变量:

?查询上一条命令的执行输出,命令echo?

返回当前进程的ID号码echo

ps aux | grep 2911 返回当前所有进程进程号

find / -name hello.sh & –后台执行find命令

$! 查看后台运行最后一个进程id号

read [option] [var name]

-option:

-p 加提示信息,在等待输入时输出提示信息

-t 秒数 可以指定等待时间

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

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

eg:read -p “please input your name ” name

echo nameread−p“pleaseinputyourpasswd”−spasswdecho−e“\n”echopasswd

read -p “please input your sex[M/F]” -n 1 sex

echo $sex
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell