shell介绍,shell模型介绍


1)说明
shell文件后缀为sh,可理解为将多个命令写到1个文件中,只要执行该shell文件,就可以执行许多关联的操作,避免繁琐的去执行单个命令的。
其中shell文件中,最开始需要加#!/bin/bash,以表明这是1个shell文件。

2)执行shell
chmod +x *.sh
./*.sh

3)变量使用
定义变量
变量名=变量值,等号两边不能有空格,变量名只能包含字母、数字和下划线,不能以数字开头,变量之中包含特殊字符,需要加单引号(''),如果值中包含单引号,则需要加双引号(""),如果值为一个命令,则需要用反引号(``)包裹起来
name='testName';

使用变量
$变量名 或 ${变量名}
$name ${name}

设置变量只读
name='testName';
readonly name;

删除变量,只读变量不能被删除
name='testName';
unset name;

4)符号使用
$ 当前shell的id,可用echo $$ 查看
$0 脚本文件名
$1~$n 传递给脚本或函数的第几个参数
$# 传递给脚本或函数的参数个数
$* 传递给脚本或函数的参数
$@ 传递给脚本或函数的参数
$? 上个命令执行后的返回结果,或函数返回值,0 成功 1 失败
$$ 当前shell的id

5)转义字符,加-e后,会执行转义字符,加-E后,不执行转义字符
echo 'this a file \n'; 结果为:this a file\n
echo -e 'this a file \n'; 结果为:this a file
\n 换行
\r 回车
\t 水平制表符
\b 退格
\f 换页
\v 垂直制表符
\\ 反斜杠
\a 警报

6)变量替换
根据变量的状态来改变变量的值

${var} 变量原始值
${var:+value} 变量被定义,则返回value,不影响var的值

${var:=value} 变量为空或已被删除,则返回value,且var=value
${var:-value} 变量为空或已被删除,则返回value,不影响var的值

${var:?value} 变量为空或已被删除,则返回value,并进行错误输出,可判断变量是否被定义

例子:

#!/bin/bash

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"

echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"

unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"

var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"

echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

 

相关内容

    暂无相关文章