一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Linux開發(fā)_Shell腳本編程語言

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

掃碼添加小助手

加入工程師交流群

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

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

Linux下常用的腳本語言。

變量、數(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ù) 類似于C語言的argv argc

#!/bin/bash

echo "cnt=$#"

echo "[0]=$0"

echo "[1]=$1"

echo "[2]=$2"

echo "[3]=$3"

??if語句語法規(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語句示例

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ì)算字符串長度

#!/bin/bash

string="abcd"

echo ${#string} #輸出 4

??數(shù)組語法

#!/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語句格式

#!/bin/bash

printf "%d\n" 1234

printf "%s\n" "45678"

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

#!/bin/bash

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

read data #從鍵盤輸入

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

??Case多分支選擇語句

#!/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 : #無限循環(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ù)的編寫格式

func()

{

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

}

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

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

#!/bin/bash

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

func1()

{

func2

}

func2()

{

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

}

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

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

#!/bin/bash

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

func()

{

return 255 #最大范圍是255

}

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

echo $?

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

#!/bin/bash

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

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.?從鍵盤上輸入年份,判斷平年閏年。

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

#能被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. 寫一個(gè)腳本

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

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

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

Hello,log

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

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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213763
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

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

    關(guān)注

    0

    文章

    36

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    Linux從零到精通:最簡單的Shell腳本入門教程

    case語句 shell變量數(shù)組 shell腳本前言 |為什么學(xué)習(xí)shell編程 Shell
    的頭像 發(fā)表于 12-05 09:56 ?1561次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最簡單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程

    串口屏支持哪些編程語言開發(fā)環(huán)境?

    串口屏作為一種常用的顯示和交互設(shè)備,支持多種編程語言開發(fā)環(huán)境。以下是對(duì)串口屏支持的編程語言開發(fā)
    的頭像 發(fā)表于 11-13 11:45 ?750次閱讀
    串口屏支持哪些<b class='flag-5'>編程</b><b class='flag-5'>語言</b>和<b class='flag-5'>開發(fā)</b>環(huán)境?

    Linux系統(tǒng)中shell命令解析

    shellLinux系統(tǒng)的用戶界面,提供了用戶與內(nèi)核交互的一種接口,它接收用戶輸入的命令并到送到內(nèi)核去執(zhí)行,因此也被稱為Linux的命令解釋器。
    的頭像 發(fā)表于 11-05 15:40 ?932次閱讀

    MCU編程語言開發(fā)環(huán)境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統(tǒng)的核心,廣泛應(yīng)用于各種電子產(chǎn)品中。隨著技術(shù)的發(fā)展,MCU編程語言開發(fā)環(huán)境也在不斷進(jìn)步,以適應(yīng)不同的應(yīng)用需求。 1.
    的頭像 發(fā)表于 11-01 11:51 ?2194次閱讀

    TCSH shell 編程入門

    ICer從業(yè)人員最先需要掌握的語言,就是linux shell語言。TCSH是ICer使用最多的Shell
    發(fā)表于 11-01 10:45 ?0次下載

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運(yùn)行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用
    的頭像 發(fā)表于 10-24 17:19 ?649次閱讀

    Linux計(jì)劃任務(wù)crontab運(yùn)行腳本不正確的問題

    寫好的程序希望在崩潰之后能夠自啟動(dòng),于是利用linux的crontab功能,添加一個(gè)計(jì)劃任務(wù),每分鐘執(zhí)行一個(gè)腳本查看需要監(jiān)控的進(jìn)程是否還在,如果不在則啟動(dòng)之,否則不做任何事情。這么一個(gè)簡單的腳本在crontab中運(yùn)行和在
    的頭像 發(fā)表于 10-23 13:36 ?946次閱讀

    shell腳本執(zhí)行的三種方式及區(qū)別

    Linux系統(tǒng)中,Shell腳本是一種非常實(shí)用的工具,用于自動(dòng)化執(zhí)行一系列命令。Shell腳本可以大大提高工作效率,簡化復(fù)雜的任務(wù)。在這篇
    的頭像 發(fā)表于 08-30 15:24 ?2211次閱讀

    執(zhí)行shell腳本的方式包括什么

    執(zhí)行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運(yùn)行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運(yùn)行腳本。例如: ./s
    的頭像 發(fā)表于 08-30 15:17 ?769次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之本地腳本的編寫和執(zhí)行

    ,再次查看var變量的值,可以看到成功輸出235,該方式執(zhí)行腳本后的變量,沒有釋放,所以我們經(jīng)常使用source來配置shell環(huán)境變量,后邊講開發(fā)板交叉編譯工具設(shè)置時(shí)會(huì)使用到。
    發(fā)表于 08-29 10:51

    shell腳本編寫之本地腳本的編寫和執(zhí)行

    的使用可以參考下一節(jié))將變量值輸出進(jìn)行查看,如下圖,可以看到?jīng)]有輸出var的值;然后再使用source或. 進(jìn)行腳本執(zhí)行,再次查看var變量的值,可以看到成功輸出235,該方式執(zhí)行腳本后的變量,沒有釋放,所以我們經(jīng)常使用source來配置
    發(fā)表于 08-28 09:36

    嵌入式學(xué)習(xí)-shell介紹

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

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

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

    語言RPA中有哪些優(yōu)勢(shì),可以提高開發(fā)效率?

    語言RPA提供了多種資源和工具來幫助用戶提高開發(fā)效率,以下是一些值得關(guān)注的點(diǎn): 1、跨平臺(tái)兼容:火語言支持在Win, Mac, Linux上三端跨平臺(tái)運(yùn)行,一個(gè)
    的頭像 發(fā)表于 08-07 13:40 ?675次閱讀