Shell脚本编程

一.查看用户Shell:
(1).使用命令cat /etc/shells 来查看/bin/目录下Ubuntu支持的Shell
(2).使用echo $SHELL命令查看当前用户的Shell
(3).其他用户的Shell,可以在/etc/passwd文件中看到,并且可以修改,但要具有超级用户权限

二.Shell脚本执行方式:

1.Shell脚本执行过程
Shell脚本是利用Shell的功能所编写的一个纯文本程序,将各类Shell命令预先放入到一个文件中,方便一次性执行的一个程序文件,方便管理员进行设置或者管理,它与windows下的批处理相似,一个操作执行多条命令。

2.Shell脚本执行方式:

1.直接命令执行
(1).直接命令执行
(2).使用文本编辑器编辑生成脚本文件
2.sh/bash [选项] 脚本名
打开一个子Shell读取并执行脚本中的命令。该脚本文件可以没有执行权限
sh/bash在执行脚本过程中。选项如下。
-n:不要执行script,仅检查语法的问题
-v:在执行script前,先将script的输出到屏幕上
-x:进入跟踪方式,显示所执行的每一条命令,并且在行首显示一个 + 号
3.source 脚本名
(1).在当前BASH环境下读取并执行脚本中的命令
(2).该脚本文件可以没有执行权限,执行的格式为source 脚本,或source ./脚本

三.Shell脚本变量
Shell脚本变量就是在Shell脚本程序中保存,系统和用户所需要的各种各样的值。Shell脚本变量可以分为:系统变量、环境变量、和用户自定义变量

1.系统变量:
Shell常用的系统变量并不多,但在做一些参数检测的时候十分有用

按键命令
$ #命令行参数的个数
$ n当前程序的第n个参数
$ 0当前程序的名称
$ ?执行上一个指令或函数的返回值
$ *以“参数1参数2…” 形式保存所有参数
$ @以“参数1”“参数2”的形式保存所有参数
$ $本程序的(进程ID号)PID
$ !上一个命令的PID
$ -显示Shell使用的当前选项,与set命令功能相同

2.自定义变量:

1.变量值的引用与输出
(1).引用变量时在变量名前加上$符合
(2).输出变量时用echo命令
(3).如果变量包含在其他字符串中,为了区分变量和其他的字符串,需要用{}将变量名括起来
2.变量的赋值的替换
(1).变量赋值的方式:变量名=值
注:给变量赋值的时候不能在“=”两边留空格
(2).重置就相当于给这个变量另一个值
(3.)清空某一变量的值可以使用unset命令
(4).变量可以有条件的替换,替换条件放在{}中
	1.当变量未定义或者值为空时,返回值为value的内容,否则返回变量的值。其格式为${variable:-value}
	2.若变量未定义或者值为空时,在返回value的值同时value赋值给variable。其格式为${variable:=value}
	3.若变量已经赋值,其值才用value替换,否则不进行任何替换。其格式为${variable:+value},value替换variable

数组:

对数组进行声明,使用declare命令:
declare [+/-] [选项] variable
+/-:指定或关闭变量的属性
a:定义后面名为variable的变量为数组array类型
i:定义后面名为variable的变量为整数数字类型

数组的赋值:
在shell中,用括号来表示数组,数组元素用空格分隔开来
1.定义数组的一般形式为:
array_name=(v1 v2) //此时下标从0开始
2.还可以单数定义,可以使用不连续的下标,而且下标的范围没有限制
array_name[0] = v1
array_name[2] = v4

数组的读取:
${array_name[index]}

用${#数组名[@]}可以得到数组长度

shell的输入输出:
输入:read
输出:echo

if语句:

1.单分支if语句:
if: 条件测试命令
then
命令序列
fi

例:
#! /bin/sh
a=10
b=20
if [ a = = a== a==b]
then
echo “a is equal to b”
else
echo “a is not equal b”
fi

2.多分支语句用elif

while语句:

while [条件测试命令]
do
命令序列
done

for语句:

for 变量名 in 取值列表
do
命令序列
done

循环控制语句:break,continue

注:
1.编译.sh的shell脚本用 bash 文件名,C语言的文件需要先使用 gcc -g -o和./文件名
2.if和while后的条件花括号里面的代码和花括号之间必须有空格
3.判断等于一个等号就行
4.循环和判断后要有结束标志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值