文章目录
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/106248606
1 变量概述
Shell与其他语言相比:
- php和jave主要实现功能;
- Shell可以简化管理操作;
变量是计算机内存的单元,其中变量存放的值可以改变;
通俗的说,变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,方便实用
变量的命名规则
(1) 变量必须以字母或下划线开头、变量名中间的只能由字母、数字和下划线组成;
(2) 变量名的长度不得超过255个字符;
(3) 变量名在有效的范围内必须是唯一的;
注:在Shell中,变量的默认类型是字符类型。
2 变量的分类
Shell变量可以分为用户自定义变量、环境变量、未知参数变量、预定义变量
(1) 用户自定义变量:用户自己定义的变量。
(2) 环境变量:主要保存和系统相关的数据。环境变量可以自定义,但是对系统生效的环境变量名和变量的作用是固定的。
(3) 位置参数变量:主要是用来向脚本中传递参数或数据,变量作用是固定的。该变量名不能自定义。
(4) 预定义变量:是Shell中已经定义好的变量,变量作用是固定的。该变量名不能自定义。
3 用户自定义变量
3.1 变量定义
变量定义命令格式为: 变量名=变量值
例如:x=5
name= “xiao ming”
#注意符号“=”有空格
3.2 变量调用
变量调用命令格式为:echo $变量名
例如:
echo $x
echo $name
注:变量的默认类型为字符型
3.3 变量叠加
变量的叠加命令格式为: 变量名2=”$变量名1”叠加内容
或者为:变量名2=${变量名1}叠加内容
3.4 变量查看
查询系统所有定义的变量的命令为:set
使用命令:set -u
表示调用未声明的变量时会系统报错
3.5 变量删除
变量删除命令格式: unset 变量名
4 环境变量
环境变量和用户自定义变量的区别:
- 用户自定义变量只在当前的Shell中生效;
- 环境变量在当前Shell和这个Shell的所有子Shell中生效。
注意: 变量可以自定义,但是对系统生效的环境变量名和变量的作用是固定的。
定义环境变量的命令格式:export 变量名=变量值
或者:
变量名=变量值
export 变量名
然后进入到子bash中,然后通过命令 pstree
查看
然后使用命名 set
来查看所有变量名,只能看到环境变量y和z,变量x不在当前bash中。
set
命令查看所有变量;env
命令查看环境变量;
退出子bash使用命令:exit
常用的环境变量如下图所示:
(1) PATH环境变量
PATH环境变量用于系统查找命令的路径
通过命令 echo $PATH 可以查看PATH环境变量
可以通过命令:PATH=”$PATH”:/root/sh
添加路径。
这种方法知识临时生效,系统重启将失效,想要永久生效,必须写入到环境变量的生效文件中。
(2) PS1环境变量
PS1环境变量用于命名提示符设置,其各个符号的作用如下所示:
5 语系变量
查询当前语系变量的命令为: locale
如上图所示,其中
LANG
表示系统主语系的变量;
LC_ALL
表示整体语系的变量;
通过命令 echo $LANG
可以查看系统当前语系
通过命令 locale -a|more
可以查看Linux支持的所有语系,如下图所示:
6 位置参数变量
(1) $n
例如,求两个变量的和
代码
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo $sum
(2) $*
, $@
和 $#
代码
#!/bin/bash
echo "参数为:$*"
echo "参数也为:$@"
echo "参数个数为:$#"
(3) $*
和 $@
的区别
代码
#!/bin/bash
for i in "$*"
do
echo $i
done
echo ------------------
for j in "$@"
do
echo $j
done
7 预定义变量
(1) $?
(2) $$
和 $!
8 接收键盘输入——read命令
read命令用于接收键盘输入的字符,其命令格式为:
read 选项 变量名
其中参数选项及其作用分别为:
1) -p 表示提示信息,在等待read输入时,输出提示信息;
2) -t 表示等待的秒数,read命令会一直等待用户输入,用户可以设置等待的时间;
3) -n 表示接收指定的字符数,当接收到指定的字符数时,命令直接执行;
4) -s 表示隐藏输入的数据,适用于密码等信息的输入;
例1 使用参数-p
代码1
#!/bin/bash
read -p "请输入你的名字:" name
echo 你的名字为:"$name"
例2 使用参数-s
代码2
#!/bin/bash
read -p "请输入你的名字:" name
echo 你的名字为:"$name"
read -p "请输入登录密码:" -s passwd
echo -e "\n"
echo $passwd
例3 使用参数-n
代码3
#!/bin/bash
read -p "请输入你的名字:" name
echo 你的名字为:"$name"
read -p "请输入登录密码:" -s passwd
echo -e "\n"
echo 输入的密码为:"$passwd"
read -p "请输入一个字符:" -n 1 x
echo -e "\n"
echo 输入的字符为:"$x"
参考资料
[1] shell编程之变量