Linux Shell學習簡單小結 更新中

2021-08-31 04:55:30 字數 3784 閱讀 7250

if-fi

#! /bin/bash # 刪除檔案 和 新建檔案 file=readme function delfile() function addfile() delfile addfile

result:

(沒有readme檔案)

[work shell]$ sh if_e.sh

add readme ...

[workshell]$ sh if_e.sh

del readme ...

add readme ...

if-else-fi

#! /bin/bash echo "press y hello" read str if [ "$str" = "y" ] || [ "$str" = "y" ];then echo "hello" else echo "bye.." fi;

result:

[work shell]$ sh if.sh

press y hello

yhello

[work shell]$ sh if.sh

press y hello

nbye..

if-elif-else-if(函式傳參1)

# !/bin/sh type=1 # 1, 2, 3(a,abc,123) function getval() if [ "$type" == "1" ]; then for((i=0;i<4;i++)) do eval getval $i done elif [ "$type" == "2" ]; then echo "type" else echo "none" firesult:

yanggang@barry$

./param.sh01

2if-elif-else-if(函式傳參2)

# !/bin/sh #type=1 # 1, 2, 3(a,abc,123) function getval() function inputval() inputval 1 # 1 is a param

result:yanggang@barry$./param.sh 0

12awk

#! /bin/bash # 統計type型別檔案,總共含有多少行 type="*.h *.cpp" result="result.txt" # 統計函式 function cal_lines() end ' $result >> $result #awk累加第一列,相加結果為total } cal_lines #呼叫函式 cat $result #檢視結果

result:

[work]$ sh cal_lines.sh

ls: *.h: no such file or directory

91 test_performance_server.cpp

178 test_performance_ubclient1.cpp

230 test_performance_ubclient2_common_async.cpp

204 test_performance_ubclient2_common_block.cpp

206 test_performance_ubclient2_common_nonblock.cpp

191 test_performance_ubclient2_common_single_block.cpp

193 test_performance_ubclient2_common_single_nonblock.cpp

237 test_performance_ubclient2_nshead_async.cpp

220 test_performance_ubclient2_nshead_block.cpp

218 test_performance_ubclient2_nshead_nonblock.cpp

192 test_performance_ubclient2_nshead_single_block.cpp

192 test_performance_ubclient2_nshead_single_nonblock.cpp

2352

linux實現兩個檔案內容相加(3種解法)

a.txt(10行) b.txt(9行)

解法一

awk 'nr==fnr nr > fnr' a.txt b.txt

執行結果:

[work]$ sh cal_ab1.sh

1 83

1 77

0 128

24 195

1 130

68 227

5 132

197 233

9 146

解法二

paste a.txt b.txt > c.txt while read a b c d; do echo $((a+c)) $((b+d)) done < c.txt

執行結果:

[work]$ sh cal_ab2.sh

1 83

1 77

0 128

24 195

1 130

68 227

5 132

197 233

9 146

0 8

解法三

paste a.txt b.txt | awk ''

執行結果:

[work]$ sh cal_ab3.sh

1 83

1 77

0 128

24 195

1 130

68 227

5 132

197 233

9 146

0 8

評析:

解法一,結果不準確,只輸出了前9行

解法二,結果正確,但不夠簡潔

解法三,結果正確,簡潔

while迴圈

# !/bin/sh top_num=800 index=0 function url_down() url_down

執行結果:

yanggang@barry$./tmp.sh024

4872

96120

144168

192216

240264

288312

336360

384408

432456

480504

528552

576600

624648

672696

720744

768792

linux make(makefile)由淺入深的學習與示例剖析

linux實現兩個檔案內容相加

awk中nr與fnr

shell基礎知識

關於random 的例子

shell函式(傳參)的使用

Linux Shell快速學習小總結 TBD

shell版本 sh bourne shell,最初unix的shell。csh c shell。ksh korn shell。bash bourne again shell。linux預設shell。tcsh c shell的擴充套件。pdksh ksh不免費,這個免費。echo n date a...

Linux Shell學習簡單小結 更新中

if fi result 沒有readme檔案 work shell sh if e.sh add readme workshell sh if e.sh del readme add readme if else fi result work shell sh if.sh press y hell...

Linux shell程式設計個人學習小總結

本文只是個人在學習shell程式設計的總結,並不是系統的總結。一 在進行變數賦值時,變數名前不需要新增 例如 a 2 a whomai 同時形如上 一般的賦值 整型 字串等 需要加雙引號 通過外部程式賦值需要需要用 命令 二 要注意一些陣列賦值及陣列在for迴圈中使用的情況。發現好像沒有什麼其他需要...