Shell基础之Bash的变量

从上到下,限制越来越严格

一、用户自定义变量(本地变量(

注意点:

变量是计算机内存的单元,其中存放的值可以改变

不能以数字开头

变量默认类型是字符串型

变量用等号连接,等号左右两侧不能有空格

要有空格,得用’’或者””扩起来

环境变量名建议大写,便于区分

  • 变量定义:name=123
  • 变量调用:echo $name
  • 变量查看:set查看系统中所有变量
  • 变量删除:unset name
  • 变量叠加:aa=123 aa=“$aa”456 aa=${aa}789后面两种方式都可以

二、环境变量

主要保存的是和系统操作环境相关的数据

用户自定义的变量只在当前的Shell中生效,二环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效。

1、设置环境变量

  • 申明变量:export 变量名=变量值
  • 查询变量:env
  • 删除变量:unset

2、系统常见环境变量

  • PATH:系统查找命令的路径
    • PATH的变量叠加:PATH=“$PATH”:/root/sh,可以把路径加进去,执行命令的时候,系统会在PATH路径里查找所需命令
  • PS1:定义系统提示符的变量(花式玩Linux,没有太大必要可以不用改
    • 修改的就是命令行前面的edisonhuang@edisonhuang:~$
提示符 功能
\d 显示日期
\h 显示简写主机名
\t 显示24小时制时间
\T 显示12小时制时间
\A 显示24小时制时间
\u 显示当前用户名
\w 显示当前所在目录的完整名称
\W 显示当前所在目录的最后一个目录
# 执行的第几个命令
$ 提示符。如果是root用户显示#,非root用户显示$

三、位置参数变量

  • 主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
位置参数变量 作用
$n n为数字,$0代表命令本身,$1- 9 9代表第一个到第九个参数,十以上的参数需要用大括号包含, {10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$# 这个变量代表命令行中所有参数的个数

把命令行中的参数,传入$1 $2…中

四、预定义变量

  • Bah中已经定义好的变量,变量名不能自定义,变量作用也是固定的
预定义变量 作用
$? 最后一次执行的命令的返回状态,如果是0,则上一个命令正确执行,不是0,则不正确
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
  • read 接受键盘输入
  • 命令语法:read [选项][变量名]
选项 功能
-p ”提示信息“ 在等待read输入时,输出提示信息
-t 秒数 read命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数 read命令只接受指定的字符数,就会执行
-s 隐藏输入的数据,适用于机密信息的输入
read -t 30 -p “please input your name: “ name
echo $name

read -s -t 30 -p “please enter your age: “ age  //会隐藏输入的内容
echo “\n”
echo $age

read -n 1 -t 30 -p “[M/F]: ” sex        //只让你输出一个字符
echo “\n”
echo $sex
发布了74 篇原创文章 · 获赞 3 · 访问量 4380

猜你喜欢

转载自blog.csdn.net/qq_40672635/article/details/105204797