了解系统变量
系统定义的变量 意义
BASH=/bin/bash Bash Shell 名称
BASH_VERSION=4.1.2(1) Bash 版本
HOME=/root 用户家目录
LOGNAME=root 当前登录用户的名字
OSTYPE=linux-gnu 操作系统类型
PATH=/usr/bin:/sbin:/bin:/usr/sbin 可执行文件搜索路径
PWD=/root 当前工作目录
SHELL=/bin/bash Shell 名称
USERNAME=root 当前登录的用户名
.sh固定后缀 shell的简称
第一行声明解释环境
1、在shell 脚本中,所有的变量都由字符串组成,且不需要对变量进行声明。
2、用户变量可以是任何不超过20个的字母、数字或者下划线字符的文本字符串(变量只能以字母或下划线开头)。用户变量是大小写敏感的,因此,变量Var1和变量var1是不同的变量。
特殊变量 含义
$$ Shell本身的PID(ProcessID)
$! Shell最后运行的后台Process的PID
$? 最后运行的命令的结束代码(返回值)
$- 使用Set命令设定的Flag一览
$* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$# 添加到Shell的参数个数
$0 Shell本身的文件名
$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
变量的赋值 变量的赋值使用“=”
例子:
x=6
a=“welcome to beijing”
单引号:就是字符串,不能调用变量,所有转移符全部关闭,完整的反应括号中的内容
双引号:部分转义符关闭,但某些则保留(如:$ ),双引可以引用变量
反引号:反引号内容作为一个系统命令并优先执行
变量的调用
在变量名前面加一个$符号
e)read从键盘读变量
read -p “提示信息” 变量名
read -e 在输入的时候可以使用命令补全功能
例子:
read –p “请输入你的用户名” username
# 编辑shell脚本文件
vim hello.sh
#!/bin/bash
lujing=`pwd`
echo "主机名: $HOSTNAME"
echo "日期: `date`"
echo "当前操作的用户: `whoami`"
echo "当前所在的路径: $lujing"
echo "进程的PID: $$"
echo "hello $name! 我是$NAME"
echo "hello $1 $2 $3"
echo "参数有: $*"
echo "参数有: $@"
echo "一共 $# 个!"
echo "脚本: $0"