【嵌入式Linux】10-Ubuntu-shell脚本

此笔记由个人整理

塞上苍鹰_fly

课程来自:正点原子_手把手教你学Linux

一、shell脚本简介

  • shell脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件
  • shell脚本提供数组、循环、条件判断的等功能
  • shell脚本一般是Linux运维或者系统管理员要掌握的,作为嵌入式开发人员,只需要掌握shell脚本最基础的部分即可

二、shell脚本写法

  • shell脚本是个纯文本文件,命令从上到下,一行一行的开始执行。
  • shell脚本扩展名为.sh,shell脚本的第一行固定为
#!/bin/bash
  • 表示使用bash

三、shell脚本语法

第一个shell脚本

#!/bin/bash
echo "hello world!!"
  • 结果
image-20200710095929797

交互式shell脚本

#!/bin/bash
echo "please input name"
read name
echo "your name:$name"
  • 结果
image-20200710110702849

数值计算shell脚本

  • shell仅支持整形,数值计算使用$((表达式))
#!/bin/bash
echo "please input two number"
read -p "firstnum" first
read -p "secondnum" second
tatol = $(($first+$second))
echo "$first + $second = $tatol"
  • 结果
image-20200710111346903

shell脚本test命令

  • test命令用于查看文件是否存在、权限等信息,可以进行数值,字符,文件三方面的测试

image-20200710113400094

  • 查看文件是否存在
#!/bin/bash
echo "please input file name"
read -p "file name:" filename
test -e $filename && echo "$filename exist" || echo "$filename no exist"
  • 结果
image-20200710113440221
  • 查看字符串是否相等
#!/bin/bash
echo "please input two string"
read -p "first:" first
read -p "second:" second
test $first == $second && echo "firststr = secondstr" || echo "firststr != secondstr"
  • 结果
image-20200710114414472

中括号[]判断符

  • 查看字符串是否相等
#!/bin/bash
echo "please input two number"
read -p "first:" first
[ "$first" == "$second" ] && echo "first = second" || echo "first != second"
  • 结果
image-20200710114935681

默认变量

  • $0:shlle脚本命令本身
  • $#:#表示最后一个参数的标号。
  • $@:表$1、$2、$3…
#!/bin/bash
echo "filename:" $0
echo "total param num:" $#
echo "whole param:" $@
echo "first param:" $1
echo "second param:" $2
  • 结果
image-20200710170248814

四、shell脚本选择、函数与循环

选择

  • if-else格式
if  条件判断 ; then
 //条件判断成立要做的事情
elif 条件判断 ; then
//条件判断成立要做的事情
else
 //条件判断不成立要做的事情。
fi
  • 判断输入内容
#!/bin/bash

read -p "please input[Y/N]:" value
if [ "$value" == "Y" ] || [ "$value" == "y" ]; then
	echo "you input is y"
	exit 0
elif [ "$value" == "N" ] || [ "$value" == "N" ]; then
	echo "you input is n"
	exit 0
else 
	echo "you input is error"
	exit 0
fi
  • 结果
image-20200710172004847
  • case格式
case $变量 in
“第1个变量内容”)
	程序段;;	//表示该程序块结束!!
“第2个变量内容”)
	程序段;;
“第n个变量内容”)
	程序段;;
esac
  • 判断输入内容
#!/bin/bash

case $1 in
	"a")
		echo "you input is a";;
	"b")
		echo "you input is b";;
	*)
		echo "error";;
esac
  • 结果
image-20200710173044089

函数

  • 格式
function fname() {
	//函数代码段
}
  • 简单函数调用
#!/bin/bash

function help(){
	echo "this is help cmd"
}
function close(){
	echo "this is close cmd"
}
case $1 in
	"-h")
		help;;
	"-c")
		close;;
esac
  • 结果
image-20200710174227559
  • 函数传参
#!/bin/bash
printf(){
	echo "param 1: $1"
	echo "param 2: $2"
}

print a,b
  • 结果
image-20200710174503164

循环

  • while循环格式
while [条件] 	//括号内的状态是判断式
do			//循环开始
	//循环代码段
done
  • 简单循环
#!/bin/bash

while [ "$value" == "close" ]
do
	read -p "please input str: " value
done
	echo "stop while"
  • 结果
image-20200710175358709
  • for循环格式
for((初始值; 限制值; 执行步长))
do
//循环代码段
done
  • 累加
#!/bin/bash
read -p "please input value: " value
total = 0
for((i=0;i<$value;i++))
do
	total=$(($total+$i))
done
	echo "1+2+3+4....+$value=$total"
  • 结果
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值