初学者 shell 编程

首先创建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" “ 2 " " 2"…" n” 的形式输出所有参数,被双引号" “包含时,”$*" 会将所有的参数作为一个整体;"@" 会将各个参数分开,以换行形式输出所有参数。

(6) $?
上个命令的退出状态,或函数的返回值。

(7) $$
当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID

扩展:

### 创建一个shell文件 g.sh 单向对话框
read -p 配合 if 判断的使用

:
在这里插入图片描述

发布了11 篇原创文章 · 获赞 10 · 访问量 234

猜你喜欢

转载自blog.csdn.net/weixin_44057684/article/details/104839771