嵌入式基础认识2:shell脚本的一些简单语法规则

一、关于shell的一些认识

1、shell语言,是一类编程语言。常用shell语言有sh、bash、csh、ksh、perl、python等。linux下最常用的脚本就是bash。

2、shell脚本,即把在命令行中输入的命令写成程序。这样可以避免反复地在命令行下手工输入命令的繁琐工作。

3、shell脚本是文本格式的,因此只要是文本编辑器都可以。Linux的换行符是'\n',windows的换行符是"\r\n",因此windows中的编辑器写的shell不能直接在linux下运行。

4、shell脚本不需要编译而直接运行。其运行机制是“解释运行”,即shell解析器会逐行解释shell程序代码,然后逐行运行。

5、执行shell的方式有三种。

  • 第一种:./xx.sh。这种方式要求shell程序必须具有可执行权限。
  • 第二种:source xx.sh。这种方式不要求脚本具有可执行权限。
  • 第三种:bash xx.sh。bash是一个脚本程序解释器,本质上是一个可执行程序。

二、shell脚本的一些简单语法

1、shell脚本的开头语句#!/bin/sh

  • 开头语句指定shell程序执行时被哪个解释器解释执行。
  • 这里表示该shell程序被/bin目录下的sh可执行程序执行。
  • 可以用#!/bin/bash来指定使用bash执行该脚本。
  • ubuntu默认的解释器sh其实不是bash,而是dash。

2、shell脚本的注释

  • shell脚本的注释使用#。
  • 如果有多行需要注释,每行前面都要加#。

3、shell脚本的变量赋值与引用

  • 变量赋值。使用=进行初始化赋值,=两边不能有空格
  • 变量引用。“$”是变量解引用符号。$符号后面跟着一个字符串,则将该字符串视为变量。如果该字符串没有定义,执行时并不会报错,而是把这个变量解析为空。即,在shell中没有被定义的变量其实就相当于是一个定义并赋值为空的变量。
  • 注意,变量引用的时候可以$var,也可以${var}。但某些情况只能用${var}而不能用$var。

4、shell脚本中的单引号、双引号

(1)使用字符串时可以加双引号或者加单引号,但是不能输出"或者其他转义字符。

(2)单引号中是完全字面替换(不可包含单引号本身)。

(3)双引号中,$加变量名可以取变量的值,反引号仍表示命令替换。除下面情况外,在其它字符前面的\无特殊含义,只表示字面值。

                \$表示$的字面值            输出$符号
                \`表示`的字面值
                \"表示"的字面值
                \\表示\的字面值

5、shell脚本的选择分支结构(if)

6、shell脚本的循环结构

7、shell脚本的echo命令

  • 使用echo指令新建一个文件,并且将一些内容传入这个文件中。
  • 创建文件并输入内容的关键是>。
  • 使用echo指令配合追加符号>>,向一个已经存在的文件末尾追加输入内容。

8、shell脚本中的case语句

  • case默认只执行最先匹配上的那个case,不会再执行后面的其他case。
  • 因此当while和case结合时,break是跳出外层循环而非case语句。

9、执行shell脚本时的传参

(1)执行shell脚本时,可以在执行时给该shell脚本传参。

  • $#,表示执行该shell脚本时传参的个数(真正的参数个数)。
  • $0、$1、$2·····则依次表示各个参数。

(2)对比

  • C语言./a.out 11 22 33,则argc = 4,argv[0] =./a.out,argv[1]=‘11’。
  • shell中:./a.out 11 22 33,则$#=3,$1='11'。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DreamWeaver连接Tomcat用以编辑和测试JSP

2019独角兽企业重金招聘Python工程师标准>>> 3 、打开软件之后,大家选择【站点】中的【新建站点】 。 4 、填写要填的内容。 站点名称:可以随便起,只是用来区分站点用的。因为,可以建立多个站点。 本地根文件夹&…

2013多校第三场

hdu 4629 题意&#xff1a;给你n个三角形&#xff0c;问覆盖1~n次的面积各是多少&#xff0c;n < 50; 分析&#xff1a;取出所有端点和交点的x坐标&#xff0c;排序&#xff0c;然后对于每一段xi~xi1的范围的线段都是不相交的&#xff0c;所以组成的 面积要么是三角形&#…

TSS 任务状态段

TSS(任务状态段)1 什么是TSS TSS 全称task state segment&#xff0c;是指在操作系统进程管理的过程中&#xff0c;任务&#xff08;进程&#xff09;切换时的任务现场信息。 2 TSS工作细节 TSS在任务切换过程中起着重要作用&#xff0c;通过它实现任务的挂起和恢复。所谓…

Linux下C语言程序的内存布局

以下内容源于C语言中文网的内容学习与整理。如有侵权&#xff0c;请告知删除。 一、C语言内存布局 C程序所占用的内存&#xff0c;可以划分为以下几个部分。 1、栈区&#xff08;stack&#xff09;。由编译器自动分配释放&#xff0c;存放函数的参数值&#xff0c;局部变量的值…

HTML/CSS/Javascript代码在线压缩、格式化(美化)工具

CSS 格式化ProCSSor - http://procssor.com/CSS 压缩CSS Compressor - http://www.cssdrive.com/index.php/main/csscompressorHTML 格式化Tabifier - http://tools.arantius.com/tabifierHTML 压缩Compress HTML - http://www.textfixer.com/html/compress-html-compression.p…

【运动快乐】享受赤脚慢跑 收获健康快乐

享受赤脚慢跑 收获健康快乐——写给想锻炼的您当您看到赤脚客时&#xff0c;您或许忍不住会问&#xff1a;为什么要赤脚跑呢&#xff1f;不怕扎破脚&#xff1f;跑起来不会硌疼么&#xff1f;赤脚踩在看起来扎脚硌脚的路面上&#xff0c;因为怕疼&#xff0c;我们的脚落地会轻而…

微型计算机频繁死机的原因,电脑经常死机是什么原因|电脑经常死机的解决方法...

‍‍电脑出现死机是很常见的一种故障&#xff0c;造成的原因也有很多种。而最近有些用户的电脑经常死机&#xff0c;开机几分钟就死机&#xff0c;有时还会出现蓝屏&#xff0c;这到底是怎么回事呢&#xff1f;电脑经常死机是什么原因呢&#xff1f;下面小编结合自己的实际情况…

Linux系统命令行的符号含义

内容整理于网络&#xff0c;如有侵权&#xff0c;请告知删除。 1、常见符号含义 . 代表当前目录 .. 代表上一层目录&#xff0c;当前目录的父目录 - 代表前一个目录&#xff0c;我刚才从哪个目录cd过来 ~ 代表当前用户的宿主目录 / 代表根目录 $ 普通用户的命令行提示符…

ExtJs 分组表格控件----监听

ExtJs 分组表格控件----监听2013年8月1日10:59如图&#xff0c;点击expand可以展开所有的分组&#xff0c;collapse可以合并所有的列&#xff0c;toggle和toggleone展开合并一个分组Ext.get(expand).on(click, function() { grid.getView().expandAllGroups(); });…

PKI系统深入介绍

公钥基础设施&#xff08;Public Key Infrastructure&#xff0c;简称PKI&#xff09;是眼下网络安全建设的基础与核心&#xff0c;是电子商务安全实施的基本保障&#xff0c;因此&#xff0c;对PKI技术的研究和开发成为眼下信息安全领域的热点。本文对PKI技术进行了全面的分析…

html 禁止缩放 ios10,完美解决ios10及以上Safari无法禁止缩放的问题

完美解决 ios10 及以上 Safari 无法禁止缩放的问题转载自掘金-互联网学徒移动端web缩放有两种&#xff1a;双击缩放双指手势缩放在 iOS 10之前&#xff0c;iOS 和 Android 都可以通过一行 meta 标签来禁止页面缩放&#xff1a;但 iOS 10开始&#xff0c;meta 设置在 Safari 内无…

SCRT软件的使用教程

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 SCRT软件下载&#xff1a;提取码1234 快速链接的步骤与设置 先选择“快速链接”&#xff1b; 然后协议选serial&#xff0c;端口在设备管理器中查看&#xff08;我的是com3&#xff09;&#xff0c;波特率…

KEIL4.12中添加ULINK2的支持

转载自&#xff1a;http://www.amobbs.com/thread-4767650-1-1.html 如果你用KEIL4.12&#xff0c;但却没有Ulink2下载器&#xff0c;只有早先用的Ulink下载器&#xff0c;那么你按照下面三步升下级就可以了....三步&#xff1a;1.把‘keil-ulink升级至ulink2的文件’解压缩后拷…

解决Vmware中安装Ubuntu Server 14.04 分辨率无法全屏问题

2019独角兽企业重金招聘Python工程师标准>>> We will have to edit grub configuration. Open a terminal and paste this: sudo gedit /etc/default/grub Hit Enter. It will open grub preferences in Gedit.Locate the line # GRUB_GFXMODE800x600 (resolution m…

vue indev.html,webpack - Can't add script tag to Vue component files ( *.vue ) - Stack Overflow

Im new to vue.js.Im trying to render vue component file but when I add to vue component, for example, app/javascript/packs/components/app.vue file, compiling error happens in babel-loader.error logERROR in ./node_modules/babel-loader/lib??ref--1-0!./node…

GCC编译器的相关内容

本文摘录与整理于C语言中文网的相关内容&#xff0c;仅用于学习&#xff0c;如有侵权请告知删除。 原内容网址&#xff1a;C语言中文网&#xff1a;C语言程序设计门户网站(入门教程、编程软件) GCC官方文档网址&#xff1a;Top (Using the GNU Compiler Collection (GCC)) 1、…

HDU 4279 - Number

2012年天津赛区网赛的题目&#xff0c;想了好久&#xff0c;也没能想出来 还是小杰思路敏捷&#xff0c;给我讲解了一番&#xff0c;才让我把这个题做出来 f&#xff08;x&#xff09;x-phi&#xff08;x&#xff09;&#xff08;1——x与x互素个数&#xff09;-g&#xff08;x…

SQL SERVER2014 安装 Error code 0x858C001B.

原因是语言版本不一致,SQL SERVER是中文简体版&#xff0c;操作系统是英文版&#xff0c;在操作系统、控制面板&#xff0c;区域语言设置为中文就Ok啦。 TITLE: SQL Server Setup failure.------------------------------ssSQL Server Setup has encountered the following err…

计算机用户登录设置成2000,2008计算机等级考试:Windows2000系统选项设置

在Windows 2000 Server中&#xff0c; 用户除了可以进行前面章节中介绍的系统设置&#xff0c;还可以在系统中进行一些其他的设置&#xff0c;包括新建、编辑、删除用户及系统变量&#xff0c;设置默认启动系统及故障恢复选项&#xff0c;查看系统性能等。本节便来介绍一些比较…

静态链接库与动态链接库

以下内容源于C语言中文网相关内容的学习整理&#xff0c;如有侵权请告知删除。 一、库文件的简介 库文件&#xff0c;其等价为压缩包文件。该文件内部通常包含不止一个目标文件&#xff08;也就是二进制文件&#xff09;&#xff0c;每个目标文件存储的代码&#xff0c;并非完…