adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)
自定義函數
1.基本語法
[ function ] funname[()] {Action;[return int;] } funname2.經驗技巧
(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 7Shell工具(重點)
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.102sed
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.txtawk
一個強大的文本分析工具,把文件逐行的讀入,以空格為默認分隔符將每行切片,切開的部分再進行分析處理。
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 44.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 5sort
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;面试题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux如何删除名为-a的文件
- 下一篇: 手机连接蓝牙扫码枪_原来手机蓝牙的隐藏功