首先创建shell文件(建议创建一个专门存放shell文件的目录,方便查找)
#touch a.sh
创建好之后打开a.sh文件编辑内容
#vim a.sh
输入i进入编辑模式,第一行输入#!/bin/bash 设置编bash译器
# !/bin/bash
我们先输出一个"hello world"
echo "hello world"
创建好之后我们需要保存并退出
按 esc (键盘左上角)后输入 : (冒号)wq或者x 然后按 Enter (回车键)
创建好a.sh文件之后该怎么让它运行起来呢?有以下几种方法:
(1) 绝对路径执行:
指的是直接从根目录/到脚本目录的绝对路径
pwd
`pwd`/test.sh
(2) sh、bash执行:
指的是用脚本对应的sh或bash来接着脚本执行
sh a.sh
bash a.sh
(3) 工作目录执行:
指的是执行脚本时,先进入到脚本所在的目录(此时,称为工作目录),然后使用 ./脚本方式执行
./`a.sh`
运行此条命令需要赋予a.sh文件执行权限
chmod +x a.sh
chmod 764 a.sh
(4) shell环境执行:
指的是在当前的shell环境中执行,可以使用 . 接脚本 或 source 接脚本
. test.sh
source test.sh
shell变量
创建一个b.sh文件
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
you_name="娜娜"
you_age=20
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
*命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
*中间不能有空格,可以使用下划线(_)。
*不能使用标点符号。
*不能使用bash里的关键字(可用help命令查看保留关键字)。
shell运算符
(1)“ [运算表达式]”
(2)expr +,-,*,/,%
注意:expr运算符间要有空格(和变量不同)
#expr 1 + 1
#expr 2 \* 4 (一定要注意 *不能单独使用系统会认识是通用符号!)
expr 2 + 3 \* 4 (有两种情况)
expr 2 + 3 \* 4 (先乘除再加减)
expr `expr 2 + 3` \* 4 (`` 符号在esc下面 默认先算``符号内的再乘4)
也可使用变量赋值计算(expr 2 + 3 \* 4)
a=$[(2+3)*4]
echo $a
条件判断
[ condition ] (注意condition前后要有空格)
注意:条件非空即为true [ aaa ] 返回true []返回false
示例:判断 12 是否大于等于 17
[ 12 -ge 17 ] (注意前后都需要空格,否则会报错)
echo $? 判断12是否大于等于17(条件为真返回0,条件为假返回1)
其余就不演示了,直接套用即可,谢谢
shell中的$0 $n $# $ $@ $? $$*
(1) $0
当前脚本的文件名
(2) $n
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
(3) $#
传递给脚本或函数的参数个数。
(4) $*
传递给脚本或函数的所有参数。
(5) * 和 * 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" “包含时,都以”$1" “ n” 的形式输出所有参数,被双引号" “包含时,”$*" 会将所有的参数作为一个整体;"@" 会将各个参数分开,以换行形式输出所有参数。
(6) $?
上个命令的退出状态,或函数的返回值。
(7) $$
当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID
扩展:
### 创建一个shell文件 g.sh 单向对话框
read -p 配合 if 判断的使用