乐趣区

Shell基础

cat      /etc/shells  // 多种解释器
echo     $SHELL       // 默认解释器

1.脚本格式
脚本以 #!/bin/bash 开头(指定解释器)

2.脚本执行

bash|sh     hellowWorld.sh   // bash 或 sh 来执行
./helloWorld.sh              // 脚本需要执行权限

3.多命令处理

touch bash.sh      // 先创建一个脚本文件
// 在脚本文件中写入如下代码
#!/bin/bash
cd /home
touch hi.txt
echo "hahaha" >> hi.txt
bash bash.sh       // 执行脚本文件

一、shell 中的变量

1.系统变量

echo $HOME          // 当前用户家目录
echo $PWD           // 当前目录
echo $SHELL         // 默认解释器
echo $USER          // 当前用户

2.自定义变量
变量默认类型是字符串类型,无法直接进行数值运算
变量值有空格,要用双引号或单引号括起来

A=2                  // 等号两边没有空格
unset A              // 撤销变量
readonly B=3         // 静态变量,不能 unset
D="aa aavv ddd"
export 变量名        // 将变量提升为全局环境变量,可供其他 shell 程序使用

3.特殊变量
$n(n 为数字,$0 代表该脚本名称,$1-$9 代表第一到第 9 个参数,十以上参数需要用大括号,如 ${10})

sh hello.sh xx mm
echo "$0 $1 $2"     // 输出 hello.sh xx mm

$#(获取所有输入参数的个数,常用于循环)

$*(代表命令行中所有的参数,$* 把所有的参数看做一个整体)
$@(也代表命令行中所有的参数,不过 $@把每个参数区别对待)
$?(最后一条执行命令的返回状态,为 0 则上个命令正确执行,非 0,则上个命令执行不正确)

二、shell 中的运算符

  1. “$((运算符))” 或 “[运算符]”
    expr +,-,*,/,% 加减乘除,取余,expr 运算符间要有空格

  2. 案例
expr 3 + 2
expr `expr 3 + 2` \* 10

三、shell 中的条件判断

[condition] condition 前后要有空格, 条件非空即为 true,[xxx] 返回 true,[] 返回 false

-lt   小于                      -le   小于等于
-eq   等于                      -gt   大于
-ge   大于等于                  -ne   不等于


-r     有读权限                 -w     有写权限
-x     有执行权限


-f     文件存在并是一个常规文件
-e     文件存在
-d     文件存在并是一个目录

[-w hello.sh]
[-e /home/hello.sh]

[condition] && echo ok || echo notok 
// && 前个命令执行成功 则执行 echo ok,|| 前个命令执行失败则执行 echo notok
退出移动版