第一个shell脚本语言
1、脚本格式
(以#!/bin/bash)——指定解析器
2、第一个shell脚本(helloworld.sh)
a.创建一个shell脚本,输出helloworld;
touch helloworld.sh
vim helloworld.sh
#在helloworld.sh中输入以下内容
#!/bin/bash
ech "helloworld"
b.脚本的执行方式:
b1.采用bash或sh+脚本的相对路径或绝对路径:
sh ./helloworld.sh
sh /root/shells/helloworld.sh
bash ./helloworld.sh
bash /root/shells/helloworld.sh
b2.采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x):
赋予helloworld.sh脚本的+x权限
chmod +x helloworld.sh
执行脚本
./helloworld.sh
/root/shells/helloworld.sh
source helloworld.sh
. helloworld.sh
3、开子shell与不开子shell的区别
环境变量的继承关系,子shell中设置的当前变量在父shell中是不可见的。
变量
1、系统预定义变量(一般大写字母)
常用的系统变量——$HOME ,$PWD ,$SHELL ,$USER等
#查看系统变量的值
echo $HOME
#显示当前shell中所有变量
set
#在控制窗口显示系统变量
env | less
printenv | less
#显示具体的系统变量
printenv USER
#开启一个子shell,并查看shell进程
bash
ps -f
2、自定义变量(一般小写字母)
定义变量(不能加空格)——定义变量通常为局部变量,需要通过export命令转变为全局变量。
区别:局部变量不能在子shell中执行展示,全局变量可以。
a=2
echo $a
#将局部变量导出为全局变量
export a
运算操作需要加运算符
result=$((1+5))
#或者 result=$[1+5]
echo $result
只读变量(静态变量)
readonly b=5
#b=10就无法执行
echo $b
撤销变量(只读变量不能撤销变量)
unset result
3、参数变量
$n——位置参数:
$0——.sh文件的脚本名称
$1-$9——表示一到九九个参数变量($1:第一个参数;$2:第二个参数.......$9:第九个参数)
$#——获取输入参数个数
$* ,$@——代表命令行中所有的参数
$*:把所有参数看成一个整体
$@:把每个参数区分对待
$?——最后一次执行命令的返回状态,0就是正常执行,非0就是没有正常执行