在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(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ù) 類似于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 ${b} ] #判斷兩個(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"

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

#!/bin/bash

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

read data #從鍵盤輸入

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ù)的編寫格式

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=${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è)文件或子目錄問(wèn)好,形如:

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

Hello,log

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

8. 寫一個(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)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    87

    文章

    11345

    瀏覽量

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

    關(guān)注

    10

    文章

    1950

    瀏覽量

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

    關(guān)注

    0

    文章

    36

    瀏覽量

    8023
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux從零到精通:最簡(jiǎn)單的Shell腳本入門教程

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

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

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

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

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

    TCSH shell 編程入門

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    RISC-V Linux開(kāi)發(fā)環(huán)境腳本

    比較多的RISC-V SOC Linux開(kāi)發(fā)環(huán)境使用CMake/Makefile,雖然也知道些怎么用,但有沒(méi)完整系統(tǒng)的這方面學(xué)習(xí)資料?如語(yǔ)法、腳本鏈接結(jié)構(gòu)等,可以分享下深入學(xué)習(xí)
    發(fā)表于 03-31 12:48

    fpga開(kāi)發(fā)需要掌握哪些編程語(yǔ)言

    FPGA(現(xiàn)場(chǎng)可編程門陣列)開(kāi)發(fā)涉及多種編程語(yǔ)言和技術(shù).
    的頭像 發(fā)表于 03-27 14:34 ?1627次閱讀

    fpga用的是什么編程語(yǔ)言 fpga用什么語(yǔ)言開(kāi)發(fā)

    和VHDL都是用于邏輯設(shè)計(jì)的硬件描述語(yǔ)言,并且都已成為IEEE標(biāo)準(zhǔn)。它們能形式化地抽象表示電路的結(jié)構(gòu)和行為,支持邏輯設(shè)計(jì)中層次與領(lǐng)域的描述,具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性,并便于文檔管理和設(shè)計(jì)重用。 fpga用什么語(yǔ)言開(kāi)發(fā)
    的頭像 發(fā)表于 03-14 17:09 ?3635次閱讀
    主站蜘蛛池模板: 四虎国产精品永免费 | 性猛交╳xxx乱大交 性免费视频 | 色www亚洲国产张柏芝 | 色婷婷久久| 婷婷亚洲综合五月天在线 | 欧美高清一区 | 最新黄色免费网站 | 色一区二区 | 天天综合网天天综合色不卡 | 波多久久夜色精品国产 | 欧美污视频网站 | susu成人影院 | 玖玖在线免费视频 | 国产三级日本三级在线播放 | 五月婷色 | 国产一级毛片午夜福 | 午夜爽爽性刺激一区二区视频 | 三级黄色网址 | 干干人人 | 日本与大黑人xxxx | 波多野结衣50连精喷在线 | 国产乱辈通伦影片在线播放 | 男女爱爱免费 | 亚洲不卡视频在线观看 | 亚州免费一级毛片 | 五月月色开心婷婷久久合 | 男人的天堂色偷偷之色偷偷 | 美女拍拍拍免费视频观看 | 综合爱爱 | 在线成人精品国产区免费 | 亚洲色图20p| 黄网站在线观看 | 91色蝌蚪| 色视频免费观看高清完整 | 三级电影在线观看视频 | 一区二区不卡免费视频 | 人人爱人人艹 | 免费一级毛片在级播放 | 成人三级影院 | 日本韩国做暖暖小视频 | 午夜h |