嵌入式开发:嵌入式 Linux – Shell 脚本 101
Android和Linux操作系统在过去几年变得非常流行。由于它们的开源性质,成本是合理的,值得庆幸的是,大量的工程师已经加入到将这些操作系统移植到几乎所有可以想象的平台的努力中来。它们的广泛使用使得嵌入式开发人员几乎不可避免地会在某个时候投入开发基于这些系统的系统。
在Linux环境中进行开发时,最有用的工具之一是使用shell脚本。脚本可以帮助设置环境变量,执行重复和复杂的任务,并确保将错误保持在最低限度。由于脚本是从终端内部运行的,任何可以从终端手动执行的命令或功能也可以自动化!
创建脚本非常直接,它可以通过打开诸如 gedit 之类的编辑器或通过诸如 VI 之类的终端编辑器来创建。 最常见的脚本类型是 bash 脚本。 这些脚本通常与 .sh 扩展名相关联,但根本不需要包含扩展名! 任何脚本的顶部都应包含在第一行 #!/bin/bash. 这告诉了应该使用什么解释器来运行脚本。
除此之外,可以自定义脚本以满足嵌入式开发人员的需求。一个好的第一个脚本,就像任何程序一样,是创建一个“Hello World”脚本。除了解释器说明符之外,clear 用于清除任何先前消息的终端,而 echo 用于输出文本。
创建脚本后,可以使用终端运行它。 但是,立即将脚本作为 ./scripts.sh 运行通常会导致错误。 此错误是由于文件权限引起的。 这可以通过首先输入命令 chmod +x script_name.sh 来解决。 这将添加脚本以具有可执行权限。 然后可以通过键入 ./script_name.sh 来运行该脚本。
现在已经运行了第一个脚本,真正的问题归结为在脚本中可以做什么? 可以运行哪些命令和功能? 答案是可以从终端运行或执行的任何东西! 脚本可以使用 cd 来更改目录。 也许脚本需要创建一个目录并移入其中。 不是问题! 该脚本可以包含 mkdir 命令,然后可以使用 cd 遍历新目录。 嵌入式开发人员甚至可能希望将创建的目录添加到路径变量中。 这可以使用导出命令来完成。
为嵌入式系统开发软件时,有时可能需要模块化脚本。也许只需要编译内核,有时需要编译内核,然后链接一些外部库。可以创建脚本来处理这些单独的项目,然后创建一个脚本来根据构建需要调用这些单独的脚本!这是一个相对直截了当的过程,它汇集了到目前为止已经展示的所有示例。
就像在常规的计算机程序中一样,可能需要使用变量来跟踪数据。无论这是字符串还是数字数据,脚本都可以像标准应用程序一样访问变量。在脚本环境中,就像在任何常规计算机语言中一样,对变量名也有一些要求。这些规则与c语言的规则非常相似。首先,变量必须以字母开头。其次,变量不能包含空格,而是应该使用下划线来桥接名称。第三,变量名不应该是bash解释器理解的关键字或保留字。这将导致混乱和不一致或不正确的结果。最后,变量名不应包含任何标点符号。遵循这些规则将确保嵌入式开发人员享受无bug的脚本编写体验。
现在创建一个变量非常简单。与C #不同,这里没有类型说明符。在脚本中,可以通过命名变量并将其设置为一个值来声明变量。也可以从脚本中访问系统变量和信息。例如,可以使用$HOSTNAME来访问计算机主机名。还可以存储日期和当前用户信息。
有了这些信息,嵌入式开发人员现在可以对开始自动化软件开发过程所需的必要命令有一个基本的了解。虽然这里提供的信息是一个好的开始,但请留意“Shell Scripting 102”,它将详细介绍如何控制脚本执行流程和接受用户信息。
嵌入式开发:嵌入式 Linux – Shell 脚本 101相关推荐
- linux怎么监控守护进程,linux shell脚本守护进程监控svn服务
最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...
- Linux shell 脚本编程-实战篇(二)
继: Linux shell 脚本编程-实战篇(一) 2. 创建与数据库.Web及电子邮件相关的脚本 2.1 MySQL 数据库 2.1.1 MySQL 数据库安装 到 http://repo.mys ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 -------------------------------------------------------------------- 注:如果你对python感兴趣 ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) -------------------------------------------------------------------- 注:如果你对python ...
- Linux shell脚本编程(一)
-------------------------------------------------------------------- 注:如果你对python感兴趣,我这有个学习Python基地, ...
- 面向dba的linux shell 脚本简介,面向 DBA 的 Linux Shell 脚本简介
DBA:Linux 面向 DBA 的 Linux Shell 脚本简介 作者:CasimirSaternos 学习一些在 Linux 上安装.运行和维护 Oracle 数据库所需的基本 bash sh ...
- Linux Shell脚本入门教程系列之(一)Shell简介
本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知 ...
- linux连接oracle的日志,linux shell脚本连接oracle查询数据插入文件和日志文件中
#!/bin/sh sqlplus "用户名/密码@数据库"< sqlplus "用户名/密码"< sqlplus -S "用户名/密码& ...
最新文章
- 4次优化,我把 Redis 性能 “压榨” 到极致!
- Cloud for Customer workCenterLoader
- jaxb 解析list元素_JAXB和根元素
- 信息学奥赛一本通 1121:计算矩阵边缘元素之和 | OpenJudge NOI 1.8 03:计算矩阵边缘元素之和
- Microblogging Freedom
- 使用Github Pages和Hexo搭建自己的独立博客【超级详细的小白教程】
- UVa 1394 约瑟夫问题的变形
- Servlet的生命周期和工作原理
- 串口速度,RS232与MAX232的区别
- tessnet2 在vs2010 及以上版本不能调用的解决方案
- c语言~符号_条件编译指令(符号),C语言条件编译指令完全攻略
- 测试抑郁症软件,App Store 上的“抑郁症测试 - 心理测试”
- android wifi 信道,WiFi不稳定经常断?手机WiFi信道小工具【图】_Android资讯_太平洋电脑网...
- Javascript中Promise对象
- xmind 使用教程
- 利用华为云ECS服务器搭建安防视频监控平台
- [146]PyUserInput模拟鼠标和键盘模拟
- 2023二建建筑施工备考第二天Day03
- Android 鼠标样式修改
- k8s每天报告服务器状态信息,[工作随笔] 配置 cron 检查 K8s Pod 存活状态以推送钉钉消息...