每日学习(1)关于shell脚本

一、Shlel脚本的介绍

关于脚本,其实就是将命令写进一个文本中,从而被执行;换言之,就是一个文件,存放的是特定格式的命令,系统根据脚本解释器等从而将命令解析出来并执行。

执行方式
1)./xxx.sh 按照#!指定的解析器解析
2)bash xxx.sh 使用bash解析器解析
3). xxx.sh 使用默认解析

二、Shell脚本的编写

开头
一般会写明:#!/bin/sh
#! 用来声明脚本由什么shell解释,否则使用默认shell
单个 ‘#’ 表示该行注释掉

定义变量
shell支持三种方式定义变量

val=value
val='value'
val="value"

注意:!!!赋值符的两边是不可以有空格的
关于双引号与单引号:
双引号中可以引用变量的值,单引号中只是将其作为字符处理

val=value
echo "val=$val"
echo 'val=$val'

执行的结果就是

val=value
val=$val

如果想使用一个定义过的变量,就可以在变量名前直接加$
另外关于{},将变量放在{}中,就可以帮助编译器很好的识别变量

val="value"
echo "I want to know the ${val}id"

关于shell中的一些预设变量

$# 传给shell脚本参数的数量
$*  传给shell脚本参数的内容
$1$2、  运行脚本的时候传递的参数
$?   命令执行后返回的状态,0表示成功
$0   当前执行的进程名
$$   当前进程的进程号

关于shell中的一些表达式

${num:-val}  如果num存在,表达式的值为num,否则为val

关于if

if [条件1]
then
	执行程序一
else
	执行程序二
fi
#*******************
if [条件1]
then
	执行程序一
elif [条件2]
then
	执行程序二
else
	执行程序三
fi

关于for

for ((初始值; 限制值; 执行))
	do
		程序
	done

关于函数

函数名(){
	命令
}

function 函数名(){
	命令
}

三、Shell脚本应用历史记录

根据ip反向查找网卡名称

function get_eth_name(){
	ip="127.0.0.1"
	eth_names=(`ip l | awk -F":" '/^[^ ]/{print $2}'| awk '{print $1}'`)
	for eth_name in ${eth_names[*]};
		do
			eth=`ip a show $eth_name  | grep $ip`
			if [ -n "$eth" ];then
				echo "eth_name : $eth_name"
				break
			fi
		done

关于使用tc命令,根据网卡名称模拟网络延迟

get_eth_name
sudo tc qdisc add dev $eth_name root netem delay 10s
sleep 10s
sudo tc qdisc del dev $eth_name root

目前学习到的就这些啦,以后有机会再补充啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值