1.查看系统中的解释器
cat /etc/shells
2.安装解释器
yum install 解释器名
3.修改用户解释器
usermod -s /bin/解释器名 用户名
或
chsh -s /bin/解释器名 用户名
4.输出重定向
#使用> 重写a.txt
ls > a.txt
#使用 >> 追加a.txt内容
ls >> a.txt
#使用2>将错误的信息输出
ls 2> a.txt
#使用&>既将正确信息输出,也将错误信息输出
ls &> a.txt
5.给first.sh脚本添加可执行权限
chmod +x first.sh
6.运行脚本
#需要赋予可执行权限
./first.sh
#不需要赋予可执行权限
sh first.sh
bash first.sh
#或,不会启动子程序,使用pstree命令查看进程树
sourse first.sh
7.输出hello word
#!/bin/bash
echo "hello word"
8.定义变量
以固定的名称,存放可以能有变化的值定义变量的格式:
变量名=变量值
取消变量的格式:
unset 变量名
注意事项:
=两边不能有空格,不要使用关键字做变量名,如ls、cd等
如果变量名已经存在则覆盖之前的变量值
变量名称有:字母/数字/下划线组成,不能以数字开始
查看变量的语法格式:
$变量名
${变量名}
预定义变量:
环境变量(变量名通常大写,有操作系统维护)
存储在/etc/profile或~/.bash_profile
命令env可以列出所有环境变量
常见环境变量:
PATH、PWD、USER、UID、HOME、SHELL
如:echo $PWD #查看当前工作目录
echo $HOME #查看当前家目录
位置变量(bash内置变量,存储脚本执行时的参数
存储脚本执行时的参数
使用$n表示,n为数字序列号
$1、$2、…、${10}、${11}、…
预定义变量(bash内置变量,可以调用但是不能赋值或修改)自定义变量(用户自主设置)
直接使用这些变量
不能直接为这些变量赋值
变量名 含义
$0 当前所在的进程或脚本名
$$ 当前运行进程的PID号
$? 命令执行后的返回状态,0表示正常,1或其他值表示异常
$# 已加载的位置变量的个数
$* 所有位置变量的值
多种引号的区别
双引号"":允许扩展,以$引用其他变量
单引号'':禁用扩展,即便$也视为普通字符.
反引号` `:将命令的执行输出作为变量值,$0)与反引号等效
read 从键盘读入变量值完成赋值
格式: read[-p"提示信息"]变量名
-p可选,-t 可指定超时秒数,-s设置是否在终端显示输入的内容.
变量的作用范围
局部变量 新定义的变量默认只在当前Shel!环境中有效,无法在子Shel环境中使用
全局变量 全局变量在当前Shell及子Shell环境中均有效