IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Shell入门 -> 正文阅读

[系统运维]Shell入门

1、脚本格式
以#!/bin/bash开头

1)实例 helloworld.sh
#!/bin/bash
echo "helloworld"
2)执行
bash helloworld.sh   或
sh helloworld.sh 或
	1)chmod u+x helloworld.sh
	2)helloworld.sh
编写的shell执行文件需要配置环境变量

2、基本语法

1)定义变量: 变量名=值
2)撤销变量: unset 变量
3)声明静态变量:readonly变量,注意:不能unset

3、变量定义规则
1)变量不能以数字开头,环境变量名建议大写
2)等号两侧不能有空格
3)在bash中,变量默认类型是字符串类型,无法直接进行数值运算
4)变量的值如果有空格,需要使用双引号或单引号括起来
4、特殊变量

1)$n(n为数字,$0代表该脚本名称,$1-$9代表第一到第9个参数)
2)$#(获取所有输入参数个数,常用于循环)
3)$*(这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
4)$@(这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
5)$?(最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行,如果这个变量的值为非0,则证明上一个命令执行不正确。)

5、运算符

1)基本语法
"$((运算式))"或"$[运算式]"
2)举例(2+3)*4  
S=$[(2+3)*4]

6、条件判断

1)[ condition ](注意condition前后要有空格)
注意:条件非空即为true,否则为false
2)常用判断条件
	(1)两个整数之间比较
	-lt  小于(less than)
	-le 小于等于(less equal)
	-eq 等于(equal)
	-gt 大于(greater than)
	-ge 大于等于(greater than)
	-ne 不等于(not equal)
	(2)按照文件权限进行判断
	-r 有读的权限(read)
	-w 有写的权限(write)
	-x 有执行的权限(execute)
	(3)按照文件类型进行判断
	-f 文件存在并且是一个常规的文件(file)
	-e 文件存在(existence)
	-d 文件存在并是一个目录(directory)

7、流程控制

1)if判断
	(1)单分支
	if [ 条件判断式 ]
		then
			程序
	fi
	
	(2)多分枝
	if [ 条件判断式 ]
		then
			程序
	elif [ 条件判断式 ]
			then
				程序
	else
			程序
	fi
	**注意事项:**
	(1)[ 条件判断式 ],中括号和判断式之间必须有空格
	(2)if 后要有空格
	
2)case
	case $变量名 in
	"值1")
		如果变量的值等于值1,则执行程序1
		;;
	"值2")
		如果变量的值等于值2,则执行程序2
		;;
	...省略其他分支...
	*)
		如果变量的值都不是以上的值,则执行此程序
		;;
	esac
	**注意事项:**
	(1)case行尾必须为单词“in”,每一个模式匹配必须以括号“)”结束。
	(2)双分号“;;”表示命令序列结束,相当于java中的break。
	(3)最后的“*)”表示默认模式,相当于java中的default。
	
3)for循环
	(1)for(( 初始值;循环控制条件;变量变化 ))
				do
					程序
				done
				**举例:**
				#!/bin/bash
				sum=0
				for((i=1;i<=100;i++))
				do
					sum=$[ $sum + $i ]
				done
				echo "sum:" $sum
	(2)for 变量 in 值1 值2 值3 ...
				do
					程序
				done
				举例:
				echo '========$*========'
				for i in $*
				do
					echo "feige Love $i"
				done
				echo '========$@========'
				for j in $@
				do
					echo "feige Love $j"
				done
				
4)while循环
		while [ 条件判断式 ]
			do
				程序
			done
			**举例:**
		#!/bin/bash
			sum=0
			i=1
			while [ $i -le 100 ]
			do
				sum=[sum+$i]
				i=[$i+1]
			done

8、函数
1)系统函数
(1)basename
basename [string/pathname] [suffix] (basename命令会去掉所有的的前缀包括最后一个(‘/’)字符,然后将字符串显示出来)。
在这里插入图片描述
(2)dirname
dirname 文件绝对路径(从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径)
在这里插入图片描述
2)自定义函数
[ function ] funname[()]
{
Action;
[return int;]
}
举例:求两个数之和
#!/bin/bash
function sum()
{
sum=$[$1+$2]
return $sum
}
注意:return后跟数值n(0-255),超过255从0重新计算。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 14:12:36  更:2021-12-08 14:14:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 1:55:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码