91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux開(kāi)發(fā)_Shell腳本編程語(yǔ)言

DS小龍哥-嵌入式技術(shù) ? 2022-09-17 15:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【摘要】 介紹Linux下Shell編程,介紹shell里語(yǔ)句、變量、函數(shù)、運(yùn)算符的使用。

任務(wù)1:Shell腳本語(yǔ)言

Linux下常用的腳本語(yǔ)言。

變量、數(shù)組、for、while、函數(shù)、運(yùn)算符、if、……..

[root@wbyq /]# ls /bin/sh -l

lrwxrwxrwx. 1 root root 4 12月 27 2016 /bin/sh -> bash

??變量定義使用

#!/bin/bash

ABC=12345

echo "ABC=$ABC"

echo "ABC=${ABC}"

??Shell腳本傳遞參數(shù) 類(lèi)似于C語(yǔ)言的argv argc

#!/bin/bash

echo "cnt=$#"

echo "[0]=$0"

echo "[1]=$1"

echo "[2]=$2"

echo "[3]=$3"

??if語(yǔ)句語(yǔ)法規(guī)則

#!/bin/bash

a=10

b=20

if [ ${a} -eq $ ] #判斷兩個(gè)數(shù)是否相等,也可以使用 ==

then

echo "123"

else

echo "456"

fi

#!/bin/bash

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "條件為真"

else

echo "條件為假"

fi

#一個(gè)[]表示一個(gè)完整的表達(dá)式

#-a表示與 -o表示或 只能用于單個(gè)表達(dá)式之內(nèi)

#多個(gè)表達(dá)式之間可以使用&&和 || 嵌套連接

#!/bin/bash

#嵌套if語(yǔ)句示例

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "條件為真"

else

echo "條件為假"

fi

else

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "條件為真"

else

echo "條件為假"

fi

fi

??計(jì)算字符串長(zhǎng)度

#!/bin/bash

string="abcd"

echo ${#string} #輸出 4

??數(shù)組語(yǔ)法

#!/bin/bash

buff=(1 2 3 4 5 6 7 8 9)

buff[0]=88

buff[1]=99

buff[100]=100

buff[88]=55

echo "buff[0]=${buff[0]}"

echo "buff[1]=${buff[1]}"

echo "buff[2]=${buff[2]}"

echo "buff[100]=${buff[100]}"

??echo用法示例

#!/bin/bash

DATA=12345

echo "DATA=${DATA}"

??printf語(yǔ)句格式

#!/bin/bash

printf "%d\n" 1234

printf "%s\n" "45678"

??從鍵盤(pán)上讀取數(shù)據(jù)

#!/bin/bash

echo -n "輸入數(shù)據(jù):" #參數(shù)-n 的作用是不換行, echo 默認(rèn)是換行

read data #從鍵盤(pán)輸入

echo "你輸入的數(shù)據(jù)為: $data" #顯示信息

??Case多分支選擇語(yǔ)句

#!/bin/bash

echo "輸入一個(gè) 1 到 4 之間的數(shù)字"

read aNum

case ${aNum} in

1) echo "你選擇 1"

;;

2) echo "你選擇 2"

;;

3) echo "你選擇 3"

;;

4) echo "你選擇 4"

;;

5) echo "你選擇 4"

;;

*) echo "你不選擇一個(gè)數(shù)字不在 1 到 4 之間"

;;

esac

??for循環(huán)

(1)基本用法

#!/bin/bash

for loop in 1 2 3 4 5 6 7 8 9

do

echo "loop=${loop}"

done

(2) 嵌套示例

#!/bin/bash

for loop in 1 2 3

do

for loop in 1 2 3

do

echo "loop=${loop}"

done

done

(3)輸出位置路徑

#!/bin/bash

for loop in /test/*.sh

do

echo "file_name=${loop}"

done

??break關(guān)鍵字

#!/bin/bash

for loop in 1 2 3

do

for loop in 1 2 3

do

echo "loop=${loop}"

break 2 #break后面可以加參數(shù),選擇跳出的循環(huán)層次

done

done

??while循環(huán)示例

(1)示例1

#!/bin/bash

while : #無(wú)限循環(huán)條件

do

sleep 1 #休眠1秒鐘

echo "123"

break 1 #跳出指定層次的循環(huán)

done

(2)示例2

#!/bin/bash

COUNTER=0

while [ ${COUNTER} -lt 5 ]

do

COUNTER=`expr ${COUNTER} + 1`

echo "COUNTER=${COUNTER}"

done

COUNTER=0

while [ ${COUNTER} != 5 ]

do

COUNTER=`expr ${COUNTER} + 1`

echo "COUNTER=${COUNTER}"

done

(2)示例3

#!/bin/bash

while read DATA

do

echo "DATA=${DATA}"

done

(3)示例4

#!/bin/bash

while read DATA

do

echo "DATA=${DATA}"

continue #跳出當(dāng)前這一次循環(huán)

echo "1234556"

done

??函數(shù)

(1)?基本示例

#!/bin/bash

#函數(shù)的編寫(xiě)格式

func()

{

echo "函數(shù)調(diào)用調(diào)用成功!"

}

func #調(diào)用函數(shù)不需要加()

(2)?嵌套調(diào)用

#!/bin/bash

#函數(shù)的編寫(xiě)格式

func1()

{

func2

}

func2()

{

echo "函數(shù)調(diào)用調(diào)用成功!"

}

func1 #調(diào)用函數(shù)不需要加()

(3)?函數(shù)的返回值

#!/bin/bash

#函數(shù)的編寫(xiě)格式

func()

{

return 255 #最大范圍是255

}

func #調(diào)用函數(shù)不需要加

echo $?

(4)?函數(shù)的形參

#!/bin/bash

#函數(shù)的編寫(xiě)格式

func()

{

echo "$1"

echo "$2"

echo "$3"

echo "$4"

return 255 #函數(shù)返回值只能是整數(shù),最好不要返回路徑。

}

func 123 456 789 dfvbfdjvbgdf

echo $?

??調(diào)用外部腳本

#!/bin/bash

. 123.sh

source 123.sh

echo "a=${a}"

echo "b=$"

echo "c=${c}"

??Shell腳本練習(xí)

1.?從鍵盤(pán)上輸入年份,判斷平年閏年。

#!/bin/bash
echo -n "請(qǐng)輸入年份:"  # -n 不換行
read year   #從鍵盤(pán)上讀取年份

#能被400整除 ,能被4整除不能被100整除
if [ `expr $year % 400` == 0 ] || [ `expr $year % 4` == 0 -a `expr $year % 100` != 0 ]
then
	echo "$year是閏年"
else
	echo "$year是平年"
fi

2.?輸出9*9乘法口訣表。

3.?冒泡排序。

4.?使用函數(shù)封裝判斷平年閏年

5.?輸出所有水仙花數(shù)(個(gè)位+十位+百位的立方和=本身)例如: 1*1*1+2*2*2+3*3*3=123

6.?判斷100~200之間所有的素?cái)?shù)

7. 寫(xiě)一個(gè)腳本

(1). 切換工作目錄至指定目錄

(2). 依次向指定目錄中的每個(gè)文件或子目錄問(wèn)好,形如:

(提示:for FILE in /var/*;或for FILE in `ls /var`;)

Hello,log

(3).統(tǒng)計(jì)/var目錄下共有多個(gè)文件,并顯示出來(lái)

8. 寫(xiě)一個(gè)腳本, 通過(guò)ping命令測(cè)試192.168.x.0到192.168.x.254之間的所有主機(jī)是否在線

如果在線,就顯示“在線”

如果不在線,就顯示“離線”

注意:ping -c1 -w1 中-c1是指ping的次數(shù),-w是指執(zhí)行的最后期限,也就是執(zhí)行的時(shí)間,單位為秒

9. 模擬linnux登錄shell

就是輸入用戶名密碼判斷是否正確。

10. 查找指定目錄下最大的文件,然后輸出

11. 將指定目錄下的所有指定后綴文件,按照統(tǒng)一的方式命名。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11758

    瀏覽量

    219008
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1964

    瀏覽量

    39558
  • Shell腳本
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    8498
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零代碼軟件開(kāi)發(fā)平臺(tái)ATECLOUD如何實(shí)現(xiàn)儀器程控軟件開(kāi)發(fā)?

    、MATLAB等主流編程語(yǔ)言,通過(guò)編寫(xiě)腳本實(shí)現(xiàn)對(duì)電子測(cè)試儀器的精準(zhǔn)控制。不可否認(rèn),這些傳統(tǒng)開(kāi)發(fā)方式在短期內(nèi)能夠滿足基礎(chǔ)的測(cè)試需求,但深入實(shí)踐后便會(huì)發(fā)現(xiàn),其暗藏的諸多限制與隱患,正成為企
    的頭像 發(fā)表于 03-02 15:59 ?1523次閱讀
    零代碼軟件<b class='flag-5'>開(kāi)發(fā)</b>平臺(tái)ATECLOUD如何實(shí)現(xiàn)儀器程控軟件<b class='flag-5'>開(kāi)發(fā)</b>?

    智能顯示模塊支持腳本語(yǔ)言嗎?

    智能顯示模塊支持腳本語(yǔ)言嗎?
    發(fā)表于 02-26 11:18

    Linux Shell文本處理神器合集:15個(gè)工具+實(shí)戰(zhàn)例子,效率直接翻倍

    Linux 系統(tǒng)中,文本是數(shù)據(jù)交互的 “通用語(yǔ)言”—— 日志文件、配置文件、數(shù)據(jù)報(bào)表、程序輸出幾乎都以文本形式存在。手動(dòng)編輯文本不僅繁瑣,還容易出錯(cuò),而掌握 Shell 文本處理工具,能讓你用幾行命令完成批量篩選、數(shù)據(jù)提取、
    的頭像 發(fā)表于 02-03 15:42 ?1467次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b>文本處理神器合集:15個(gè)工具+實(shí)戰(zhàn)例子,效率直接翻倍

    DR1平臺(tái)Linux應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

    本文為創(chuàng)龍科技DR1 系列評(píng)估板 Linux 應(yīng)用開(kāi)發(fā)手冊(cè),系統(tǒng)講解開(kāi)發(fā)環(huán)境搭建、GDB 調(diào)試、多類(lèi)型應(yīng)用案例及 MQTT 通信實(shí)現(xiàn)。核心內(nèi)容包括 LinuxSDK 與工具鏈配置、GDB 遠(yuǎn)程調(diào)試
    的頭像 發(fā)表于 01-05 16:48 ?4537次閱讀
    DR1平臺(tái)<b class='flag-5'>Linux</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

    從小白到大牛:Linux嵌入式系統(tǒng)開(kāi)發(fā)的完整指南

    基礎(chǔ)強(qiáng)化:嵌入式開(kāi)發(fā)離不開(kāi)Linux 系統(tǒng)操作,需熟練掌握命令行(文件操作、進(jìn)程管理、權(quán)限配置)、Shell 腳本編寫(xiě)、Makefile 基礎(chǔ)語(yǔ)法。建議通過(guò) “每日一個(gè)
    發(fā)表于 12-16 10:42

    Linux驅(qū)動(dòng)開(kāi)發(fā)的必備知識(shí)

    內(nèi)核基礎(chǔ)知識(shí): 1、熟悉 Linux 內(nèi)核的架構(gòu)、模塊系統(tǒng)、進(jìn)程管理、內(nèi)存管理等。 了解內(nèi)核的編譯和加載過(guò)程。 2、C編程技能: 精通 C 語(yǔ)言編程,包括指針操作、內(nèi)存管理、結(jié)
    發(fā)表于 12-04 07:58

    Linux 編程語(yǔ)言盤(pán)點(diǎn):從內(nèi)核到AI的全棧選擇

    在工控圈和嵌入式圈里,有一個(gè)常年被討論的問(wèn)題: ?“在 Linux 上,到底該用什么語(yǔ)言編程?” 有人堅(jiān)信:C 才是真正的工業(yè)語(yǔ)言。有人反駁:Python 才是效率王者。還有人推崇 G
    的頭像 發(fā)表于 11-06 17:05 ?594次閱讀

    【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目-實(shí)現(xiàn)開(kāi)機(jī)起動(dòng)

    0接上文【EASY EAI Nano-TB(RV1126B)開(kāi)發(fā)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-紅綠燈項(xiàng)目 Linux 起動(dòng)系統(tǒng)下 init 系統(tǒng)大多數(shù)
    發(fā)表于 11-03 17:25

    shell基本介紹及常用命令之shell基本介紹

    執(zhí)行結(jié)果呈現(xiàn)給用戶;同時(shí)Shell也是一種解釋性的編程語(yǔ)言或者腳本語(yǔ)言,開(kāi)發(fā)容易可以在短時(shí)間內(nèi)完成功能強(qiáng)大又好用的
    發(fā)表于 09-28 09:05

    嵌入式開(kāi)發(fā)新選擇:LuatOS腳本框架入門(mén)教程

    LuatOS正成為嵌入式開(kāi)發(fā)的新趨勢(shì)!本教程帶你從基礎(chǔ)入手,全面了解其基于Lua的腳本開(kāi)發(fā)模式與輕量級(jí)運(yùn)行框架。 一、LuatOS 編程起步 1.1 底層固件怎么啟動(dòng) LuatOS
    的頭像 發(fā)表于 09-26 17:34 ?582次閱讀
    嵌入式<b class='flag-5'>開(kāi)發(fā)</b>新選擇:LuatOS<b class='flag-5'>腳本</b>框架入門(mén)教程

    【HZ-T536開(kāi)發(fā)板免費(fèi)體驗(yàn)】2 - 交叉編譯倉(cāng)頡編程語(yǔ)言程序到開(kāi)發(fā)板運(yùn)行

    感謝電子發(fā)燒友和合眾恒躍提供的試用機(jī)會(huì)。 引言 上一篇介紹了開(kāi)箱的結(jié)果,接下來(lái)測(cè)試一下華為倉(cāng)頡編程語(yǔ)言開(kāi)發(fā)板上運(yùn)行的效果。最近對(duì)華為倉(cāng)頡編程語(yǔ)言
    發(fā)表于 07-16 21:27

    Shell腳本入門(mén)指南

    Shell 是一塊包裹著系統(tǒng)核心的殼,處于操作系統(tǒng)的最外層,與用戶直接對(duì)話,把用戶的輸入, 解釋給操作系統(tǒng),然后處理操作系統(tǒng)的輸出結(jié)果,輸出到屏幕給與用戶看到結(jié)果。
    的頭像 發(fā)表于 06-03 10:47 ?1200次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門(mén)指南

    【米爾-RK3562開(kāi)發(fā)板試用評(píng)測(cè)】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-(綠色)RUN 燈、(紅色)User燈

    在板上使用shell腳本語(yǔ)言簡(jiǎn)單明了開(kāi)發(fā)效率高便于調(diào)試修改動(dòng)態(tài)性強(qiáng)資源利用靈活但實(shí)時(shí)性不足。 shell腳本
    發(fā)表于 05-09 18:19

    樹(shù)莓派新手必看!在樹(shù)莓派上編寫(xiě)和運(yùn)行 Shell 腳本!

    在本教程中,我將討論Shell腳本的基礎(chǔ)知識(shí)、它們的用途以及如何在RaspberryPi上編寫(xiě)和運(yùn)行Shell腳本。什么是Shell
    的頭像 發(fā)表于 03-25 09:28 ?1156次閱讀
    樹(shù)莓派新手必看!在樹(shù)莓派上編寫(xiě)和運(yùn)行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!

    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序?

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為
    的頭像 發(fā)表于 03-25 09:27 ?2026次閱讀
    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序?