#!/bin/bash
开头创建一个Shell脚本,输出hello world!
方式1(输入脚本的绝对路径或者相对路径)
说明:首先要赋予hello.sh脚本的+x权限(chmod u+x hello.sh
),再执行脚本。上述例子就用了这种。
方式2(sh+脚本)
说明:不用赋予脚本+x权限,直接执行即可。
比如sh hello.sh
$HOME、%PWD、$SHELL、$USER
等等,比如:echo $HOME
等等…set
unset
变量readonly
变量,注意:不能unset
案例1:定义变量A
输出:
注意:
案例2:撤销变量A(unset
)
案例3:定义静态变量,并验证该变量是否可以 unset
检验可否可以使用unset
:
date
反引号,运行里面的命令,并把结果返回给变量A先在命令行输入set nu
把行号显示出来:
:<进行多行注释
注意:使用这个时候都要另外去行,也就是:<要写在一行,
!
要单独取一行
测试:
输出:
那段内容已经被注释掉了。
export
变量名=变量值 (功能描述:将shell变量输出为环境变量/全局变量)source
配置文件 (功能描述:让修改后的配置信息立即生效)echo
$变量名 (功能描述:查询环境变量的值)$0,$n,$*,$@,$#
)当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量;
比如:./myshell.sh 100 200
,这个就是一个执行shell的命令行,可以在myshell 脚本中获取到参数信息。
$n
(功能描述:n为数字,$0
代表命令本身,$1-$9
代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包括,如${10}
)$*
(功能描述:这个变量代表命令行中所有的参数,$*
把所有的参数看成一个整体)$@
(功能描述:这个变量也代表命令行中所有的参数,不过$@
把每个参数区分对待)$#
(功能描述:这个变量代表命令行中所有参数的个数)案例:编写一个shell脚本 position.sh
,在脚本中获取命令行中的各个参数信息:
$$,$!,$?
)就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
$$
(功能描述:当前进程的进程号(PID))
$!
(功能描述:后台运行的最后一个进程的进程号(PID))
$?
(功能描述:最后一次执行的命令的返回状态,最后这个变量的值是0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个书,由命令自己来决定),则证明上一个命令执行不正确了。)(用的不多)