日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自定義函數

1.基本語法

[ function ] funname[()] {Action;[return int;] } funname

2.經驗技巧

(1)必須在調用函數地方之前,先聲明函數,shell腳本是逐行運行。不會像其它語言一樣先編譯。

(2)函數返回值,只能通過$?系統變量獲得,可以顯示加:return返回,如果不加,將以最后一條命令運行結果,作為返回值。return后跟數值n(0-255)

3.案例實操

(1)計算兩個輸入參數的和

touch fun.sh vim fun.sh#!/bin/bash function sum() {s=0s=$[ $1 + $2 ]echo "$s" }read -p "Please input the number1: " n1; read -p "Please input the number2: " n2; sum $n1 $n2;chmod 777 fun.sh ./fun.sh Please input the number1: 2 Please input the number2: 5 7

Shell工具(重點)

cut

cut的工作就是“剪”,具體的說就是在文件中負責剪切數據用的。cut 命令從文件的每一行剪切字節、字符和字段并將這些字節、字符和字段輸出。

1.基本用法

cut [選項參數] filename

說明:默認分隔符是制表符

2.選項參數說明

選項參數 功能

-f 列號,提取第幾列

-d 分隔符,按照指定分隔符分割列

3.案例實操

(0)數據準備

touch cut.txt vim cut.txt dong shen guan zhen wo wo lai lai le le

(1)切割cut.txt第一列

cut -d " " -f 1 cut.txt

(2)切割cut.txt第二、三列

cut -d " " -f 2,3 cut.txt

(3)在cut.txt文件中切割出guan

cat cut.txt | grep "guan" | cut -d " " -f 1 guan

(4)選取系統PATH變量值,第2個“:”開始后的所有路徑:

echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/atguigu/binecho $PATH | cut -d: -f 2- /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/atguigu/bin

(5)切割ifconfig 后打印的IP地址

ifconfig eth0 | grep "inet addr" | cut -d: -f 2 | cut -d" " -f1 192.168.1.102

sed

sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”,接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。

1.基本用法

sed [選項參數] ‘command’ filename

2.選項參數說明

選項參數 功能

-e 直接在指令列模式上進行sed的動作編輯。

3.命令功能描述

命令 功能描述

a 新增,a的后面可以接字串,在下一行出現

d 刪除

s 查找并替換

4.案例實操

(0)數據準備

touch sed.txt vim sed.txt dong shen guan zhen wo wo lai laile le

(1)將“mei nv”這個單詞插入到sed.txt第二行下,打印。

sed '2a mei nv' sed.txt

注意:文件并沒有改變

(2)刪除sed.txt文件所有包含wo的行

sed '/wo/d' sed.txt

(3)將sed.txt文件中wo替換為ni

sed 's/wo/ni/g' sed.txt

注意:‘g’表示global,全部替換

(4)將sed.txt文件中的第二行刪除并將wo替換為ni

sed -e '2d' -e 's/wo/ni/g' sed.txt

awk

一個強大的文本分析工具,把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行分析處理。

1.基本用法

awk [選項參數] ‘pattern1{action1} pattern2{action2}...’ filename

pattern:表示AWK在數據中查找的內容,就是匹配模式

action:在找到匹配內容時所執行的一系列命令

2.選項參數說明

選項參數 功能

-F 指定輸入文件折分隔符

-v 賦值一個用戶定義變量

3.案例實操

(0)數據準備

sudo cp /etc/passwd ./

(1)搜索passwd文件以root關鍵字開頭的所有行,并輸出該行的第7列。

awk -F: '/^root/{print $7}' passwd /bin/bash

(2)搜索passwd文件以root關鍵字開頭的所有行,并輸出該行的第1列和第7列,中間以“,”號分割。

awk -F: '/^root/{print $1","$7}' passwd root,/bin/bash

注意:只有匹配了pattern的行才會執行action

(3)只顯示/etc/passwd的第一列和第七列,以逗號分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"。

awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "dahaige,/bin/zuishuai"}' passwd user, shell root,/bin/bash bin,/sbin/nologin 。。。 atguigu,/bin/bash dahaige,/bin/zuishuai

注意:BEGIN 在所有數據讀取行之前執行;END 在所有數據執行之后執行。

(4)將passwd文件中的用戶id增加數值1并輸出

awk -v i=1 -F: '{print $3+i}' passwd 1 2 3 4

4.awk的內置變量

變量 說明

FILENAME 文件名

NR 已讀的記錄數

NF 瀏覽記錄的域的個數(切割后,列的個數)

5.案例實操

(1)統計passwd文件名,每行的行號,每行的列數

awk -F: '{print "filename:" FILENAME ", linenumber:" NR ",columns:" NF}' passwd filename:passwd, linenumber:1,columns:7 filename:passwd, linenumber:2,columns:7 filename:passwd, linenumber:3,columns:7

(2)切割IP

ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk -F " " '{print $1}' 192.168.1.102

(3)查詢sed.txt中空行所在的行號

awk '/^$/{print NR}' sed.txt 5

sort

sort命令是在Linux里非常有用,它將文件進行排序,并將排序結果標準輸出。

1.基本語法

sort(選項)(參數)

選項 說明

-n 依照數值的大小排序

-r 以相反的順序來排序

-t 設置排序時所用的分隔字符

-k 指定需要排序的列

參數:指定待排序的文件列表

2. 案例實操

(0)數據準備

touch sort.sh vim sort.sh bb:40:5.4 bd:20:4.2 xz:50:2.3 cls:10:3.5 ss:30:1.6

(1)按照“:”分割后的第三列倒序排序。

sort -t : -nrk 3 sort.sh bb:40:5.4 bd:20:4.2 cls:10:3.5 xz:50:2.3 ss:30:1.6

面試題

京東

問題1:使用Linux命令查詢file1中空行所在的行號

答案:

awk '/^$/{print NR}' sed.txt 5

問題2:有文件chengji.txt內容如下:

張三 40

李四 50

王五 60

使用Linux命令計算第二列的和并輸出

cat chengji.txt | awk -F " " '{sum+=$2} END{print sum}' 150

搜狐&和訊網

問題1:Shell腳本里如何檢查一個文件是否存在?如果不存在該如何處理?

#!/bin/bashif [ -f file.txt ]; thenecho "文件存在!" elseecho "文件不存在!" fi

新浪

問題1:用shell寫一個腳本,對文本中無序的一列數字排序

cat test.txtsort -n test.txt|awk '{a+=$0;print $0}END{print "SUM="a}'

金和網絡

問題1:請用shell腳本寫出查找當前文件夾(/home)下所有的文本文件內容中包含有字符”shen”的文件名稱

grep -r "shen" /home | cut -d ":" -f 1

今天的學習筆記就分享到這啦!~!

最后打個小廣告,我的公眾號(顧先生的數據挖掘)

會分享點學習心得,我盡量做到周更哈。

喜歡的小伙伴可以關注下,你的關注是我最大的動力!

總結

以上是生活随笔為你收集整理的adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。