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迴圈中使用的情況。發現好像沒有什麼其他需要...