Shell学习笔记 - Shell变量

一、变量的命名

变量名必须以字母或下划线开头,由字母、数字、或下划线组成,变量名的长度不能超过255个字符。

二、变量的分类

1. 用户自定义变量

2. 环境变量

3. 位置参数变量

4. 预定义变量

三、用户自定义变量

用户自定义变量是“局部变量”,只能在当前的Shell中生效

1. 定义变量

变量名=变量值

示例:

注意:等号前后不能有空格,否则会出现以下错误提示:

2. 变量调用

$变量名 或 ${变量名}

示例:

3. 变量叠加

示例:

或:

4. 删除变量

unset 变量名

示例:

5. 查看变量

1) env:查看所有的环境变量

2) set:查看所有的变量(包括用户自定义变量)

四、环境变量

环境变量是“全局变量”,在当前Shell和这个Shell的所有子Shell中生效

1. 设置环境变量

export 变量名=变量值

变量名=变量值

export 变量名

示例:

注意:设置环境变量时,建议使用大写,避免与用户自定义变量或系统命令(都是小写的)冲突。

2. 删除环境变量,环境变量调用,查看环境变量

用户自定义变量的使用方式相同

3. 设置PS1环境变量

PS1环境变量会影响用户提示符信息,示例如下:

五、位置变量

1. $n

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

示例:

#!/bin/bash
a=$1
b=$2
sum=$(($a +$b))
echo $sum

2. $*

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

#!/bin/bash
for i in "$*"
do
    echo $i
done

#运行:test.sh 1 2 3
#输出:1 2 3
#解释:$*中的所有参数被看成是一个整体,所以这个for循环只会循环一次

3. [email protected]

这个变量也代表命令行中所有的参数,不过[email protected]把每个参数区分对待


#!/bin/bash
for i in "[email protected]"
do
    echo $i
done
#运行:test.sh 1 2 3
#输出:1
2
3
#解释:[email protected]中的每个参数被看成独立的,所以这个for循环会循环多次

4. $#

这个变量代表命令行中的所有参数的个数

#!/bin/bash
echo $#

#运行:test.sh 1 2 3
#输出:3

六、预定义变量

1. $?

最后一次执行的命令的返回状态。如果这个值为0,则说明上一个命令执行正确;如果这个值不为0,则代表上一个命令执行的错误码。

示例:

2. $$

当前进程的进程号(PID)

示例:

3. $!

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

#!/bin/bash

find /root -name "test.sh" &
echo $!

七、read命令

接受键盘输入

1. 参数说明

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

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

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

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

2. 示例

#!/bin/bash

read -p "please input username:" username
read -p "please input password:" -s password
echo -e "\n"
read -p "please input sex[F/M]:" -n 1 sex
echo -e "\n"
echo "Welcome $username[$sex]"
时间: 2024-08-01 22:42:56

Shell学习笔记 - Shell变量的相关文章

Shell学习笔记 - 环境变量配置文件

一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [[email protected] ~]# source /etc/profile #让/etc/profile配置文件生效 [[email protected] ~]# . /etc/profile #与上面的命令效果一样 二.全局环境变量配置文件 全局环境变量配置文件会对所有用户生效. 1. /etc/profile 作用: 1) 定义U

Shell学习笔记 - 环境变量配置文件(转)

一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [[email protected] ~]# source /etc/profile #让/etc/profile配置文件生效 [[email protected] ~]# . /etc/profile #与上面的命令效果一样 二.全局环境变量配置文件 全局环境变量配置文件会对所有用户生效. 1. /etc/profile 作用: 1) 定义U

Linux Shell 学习笔记

2.return与exit区别 return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用. exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 . main函数中exit(0)等价于return 0. 1. Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0 === 成功执行 非0 === 执行过程

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数

SHELL学习笔记----IF条件判断,判断条件

SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here       elif list then           do another thing here       else          do something else here fi  EX1: #!/bin/bash if [ `uname -m` == "x86_64" ]

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化-http://edu.51cto.com/lesson/id-28201.html 以下是脚本内容,内容比较简单,不做详解 在Linux上准备一块空闲的磁盘即可,如何分区可以在脚本内改下 #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: \033[0m " #开始的说明信息,其中Warning以红色字体显示 fdisk -l 2&g

Shell学习之Bash变量详解(二)

Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这种变量中主要保存和系统操作环境相关的数据. 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的. 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的. Bash变量注意点 1.变量名称可以由字母.数字和下划线组成,但是不能以数字

Shell学习之环境变量配置文件(三)

Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量,比如PATH.HISTSZE.PS1.HOSTNAME等默认环境变量. 让配置文件直接生效,不用重新登陆 source命令 source配置文件 .配置文件 有哪些配置文件 /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.ba

Shell学习之Shell特性(一)

Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~username/.bashrc.\cp -rf /etc/hosts 快捷键 ^R ^D ^A ^E ^L ^U ^K ^S ^Q 前后台作业控制 输入输出重定向 输入与输出 管道 | tee 命令排序 命令和文件自动补齐功能 这个不说了,我们在输入命令的时候,按tab键补全. 命令历史记忆功能  hi