嵌入式基础认识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'。
總結
以上是生活随笔為你收集整理的嵌入式基础认识2:shell脚本的一些简单语法规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ie11不兼容java_解决ie11不兼
- 下一篇: 5G信令7——Service Reque