建企业网站要多少钱,网站优秀作品,甘肃建投建设有限公司网站,浙江省建筑信息平台系列文章内容
Linux嵌入式学习之Ubuntu入门#xff08;一#xff09;基本命令、软件安装、文件结构、编辑器介绍
Linux嵌入式学习之Ubuntu入门#xff08;二#xff09;磁盘文件介绍及分区、格式化等
Linux嵌入式学习之Ubuntu入门#xff08;三#xff09;用户、用户组…系列文章内容
Linux嵌入式学习之Ubuntu入门一基本命令、软件安装、文件结构、编辑器介绍
Linux嵌入式学习之Ubuntu入门二磁盘文件介绍及分区、格式化等
Linux嵌入式学习之Ubuntu入门三用户、用户组及文件权限
Linux嵌入式学习之Ubuntu入门四Makefile
Linux嵌入式学习之Ubuntu入门五汇编语法学习
Linux嵌入式学习之Ubuntu入门六shell脚本详解 文章目录 系列文章内容前言shell脚本详解shell脚本语法外部输入整型计算test命令[ ]判断符 默认变量条件判断函数循环 前言
最近痛定思痛觉得自己应该硬杠Linux确实有些难度但是我觉得学习之后一定会大有用处而且我不希望局限在当下的情况学习完嵌入式Linux之后我想学习制作一些更加有难度更加锻炼人的东西。
内容有些多我觉得最好是过一遍好好记录一下一些开发最好把暂时用不到的模块跳过时间不够。 shell脚本详解
shell脚本类似windows的批处理文件将连续可执行命令写成一个文件提供数组、循环、条件判断的等功能shell脚本一般是Linux运维或者系统管理员要掌握的作为嵌入式开发人员只需要掌握shell脚本最基础的部分即可。
shell脚本是纯文本文件命令从上而下一行一行执行扩展名为.sh 第一行一定为表示使用bash表示实现shell的环境路径
#!/bin/bash例如将echo命令写在文件中在命令窗输出字符串 如上图所示通过 ls -l 查看tesh.sh文件的权限之后通过chmodchange mode修改文件的权限之后即可运行但是修改回去后发现只有读写是不能执行的。
关于文件权限相关见Linux嵌入式学习之Ubuntu入门三用户、用户组及文件权限
详细学习linux的shell脚本推荐《鸟哥的Linux私房菜》
shell脚本语法
外部输入
程序功能外部输入进行变量赋值 这就涉及到shell的命令编写语法了需要学习积累 read命令读取输入值类比C语言的各种函数吧
read命令参数含义read -a arrayname把单词清单读入arrayname的数组里read -p “text”打印提示text等待输入并将输入存储在REPLY中。read -r line允许输入包含反斜杠。read -t 3指定读取等待时间为3秒。read -n 2 var从输入中读取两个字符并存入变量var不需要按回车读取。read -d var用定界符“ ”结束输入行。
整型计算
程序功能输入两个整型完成加法运算 shell还支持整型运算数值计算用 $(表达式)如上图
test命令
程序功能查看文件是否存在 程序功能测试输入字符串是否相等
test命令参数含义-e当路径存在时返回真-f当路径存在且为文件时返回真-d当路径存在且为文件夹时返回真-z当str为空时返回真-n当str为非空时返回真两个字符串相等时返回真两个字符串相等时返回真同!两个字符串不相等时返回真
还有大于小于各种逻辑运算符的参数之后用到了再积累
[ ]判断符
程序功能判断字符串相等。 【】前后要有空格同时记得变量加上双引号可以用或者 如果不加双引号那么这个变量就不可赋值带空格的字符串因为系统会识别为多个变量。发送错误提示 first赋值为a系统输出1first赋值”1 2“系统会识别为两个变量这样就不是判断字符串相等
默认变量
程序功能测试各个默认变量的作用 0 0~ 0 n表示shell脚本的参数shlle脚本命令本身为$0 $##表示最后一个参数的标号。参数的个数 $表$1、$2、$3…即所有的参数的集合
条件判断
程序功能判断输入为Y或者N并输出语句 格式
/第一种
if 条件判断 ; then//判断成立要做的事情
fi/第二种
if条件判断 ; then//条件判断成立要做的事情
else//条件判断不成立要做的事情。
fi/第三种
if 条件判断 ; then//条件判断成立要做的事情
elif [条件判断]; then //可以叠加多个elif
//条件判断成立要做的事情
else//条件判断不成立要做的事情。
fi程序功能*这里代表的是通配符表示所有符号如果输入参数为a或者b会输出语句其他输入都进入通配符的程序块
//类似C的switch case语句
case $变量 in
“第1个变量内容”)程序段;; //表示该程序块结束
“第2个变量内容”)程序段;;
“第n个变量内容”)程序段;;
esac函数 function fname () {//函数代码段
}还支持传参a b在这里是传递的参数也就是C语言里面的实参
循环
while循环
while [条件] //括号内的状态是判断式
do //循环开始//循环代码段
done//还有另外一种until do done表示条件不成立的时候循环条件成立以后就不循环了写法如下
until [条件]
do
//循环代码段
donefor循环
for var in con1 con2 con3……
do
//循环代码段
donefor循环数值处理写法
for((初始值; 限制值; 执行步长))
do
//循环代码段
done