linux---Shell编程_linux shell编程(1)

目录

c/c++、java、shell的区别

了解shell脚本语言

shell基本语法

变量

1.本地变量

2.环境变量

3.参数变量

条件

一个小小的应用

循环

函数、

脚本调用/c语言调用脚本、

常用命令(awk、sed)


c/c++、java、shell的区别

c/c++:编译型语言,不能直接运行,执行效率比较高

.c/.c+±—>.exe

生态:开源网络库、做大型应用软件、物联网、嵌入式(智慧农业、硬件设备,控温的)做界面qt、服务器后端开发中间件、redis

Java:既需要解释器,也需要编译

.java—>.class---->.exe

(编译器生成)calss文件(是二进制的),需要用解释器(java虚拟机),隐藏了虚拟机,编代码方便,有内存回收机制,不用考虑内存(指针啥东东)

生态:大数据开发、云计算、有很多好的大的框架(特别成熟)

shell编程需要解释器来解释执行,(解释器例如bash)

了解shell脚本语言

脚本程序一般以xx.sh结尾,但不是必须的

//以下为脚本文件my.sh

#!/usr/bin/bash   ///指定解释器

echo "hello"

exit 0;
#bash my.sh
//运行my.sh文件
//输出 hello

bash其实是播放器,my.sh就是音乐

chmod u+x my.sh   //增加运行权限

./my.sh           //用解释器来运行my.sh
which python3    //查找python文件所在文件夹

vi a.py//打开新文件

print("hello py")

exit(0)

///python3 a.py  :打开python文件
///或者chmod u+x a.py   :增加权限打开文件

使用脚本优先完成

shell基本语法

变量

1.本地变量
#!/usr/bin/bash   //#!有着特殊命令,/usr/bin/bash 解释器的位置

#本地变量    //#代表屏蔽
str=hello
a="123"//1.直接赋值

echo "a=$a" //打印//$表名要取变量的值 a与前面无关
echo='a=$a' 

exit 0

输出:
a=123
a=$a

str=hello
mystr=$str //2.$赋值

read line ///3.从键盘获取

//在定义变量的时候=左右两边不允许有空格

#三种赋值

str=hello
a="123"//1.直接赋值

mystr=$str //2.$赋值

read line ///3.从键盘获取
2.环境变量
#!/usr/bin/bash 

#环境变量:从父进程获取
echo  psth=$PATH
// $PS1:把命令提示符改为自己喜欢的样式

echo "\$0=$0"  ///使用\,让$失去原有的作用
echo "\$#=$#"
echo "\$$=$$"

3.参数变量
#!/usr/bin/bash 

#参数变量
eco  psth=$PATH

echo "\$1=$1" //打印出第一个参数
echo "\$2=$2" //打印出第二个参数值
echo "\$3=$3" //打印出第三个参数值

echo "\$0=$0"  //名称
echo "\$#=$#"  //变量个数
echo "\$$=$$"  //pid的值(进程号)

#运行命令:.\my.sh  hello 123 a
#输出结果:
$1=hello
$2=123
$3=a
$0=./my.sh 
$#=3
$$=21372

条件

#!/usr/bin/bash
#三种条件

if test -f fred.c
then
...
fi
#还可以
if [ -f fred.c ]
then 
...
fi
//以下为例子

echo "input"
read line

if ["$line" = "123" ]//必须要有空格
then
    echo "=="
fi
#或者
if test "$line" = "123"
then
    echo "=="
fi

#if else语句
if ["$line" = "123" ]//必须要有空格
then
    echo "=="
else
    echo "!="
fi
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/d2015c6f163dfb6912171e493d16fdf0.png)

![img](https://img-blog.csdnimg.cn/img_convert/dd8ea7e7a5af94cc49c7e760a333e194.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/1b7c79ad367251d0c46b81a37f4c3414.png)

 **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

![img](https://img-blog.csdnimg.cn/img_convert/8625f2a1c73203eb45c985e000d4b04d.png)

![img](https://img-blog.csdnimg.cn/img_convert/986ac29cbaff535bab6d625cc9fae4a9.png)

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值