1、列印檔案的第一列(域) : awk '' filename
2、列印檔案的前兩列(域) : awk '' filename
3、列印完第一列,然後列印第二列 : awk '' filename
4、列印文字檔案的總行數 : awk 'end' filename
5、列印文字第一行 : awk 'nr==1' filename
6、列印文字第二行第一列 : sed -n "2, 1p" filename | awk 'print $1'
1. -e filename 如果 filename存在,則為真 如: [ -e /var/log/syslog ]
2. -d filename 如果 filename為目錄,則為真 如: [ -d /tmp/mydir ]
3. -b 塊裝置
4.-h filename 如果 filename存在且是乙個軟鏈結時,則為真
5. -f filename 如果 filename為常規檔案,則為真 如: [ -f /usr/bin/grep ]
6. -l filename 如果 filename為符號鏈結,則為真 如: [ -l /usr/bin/grep ]
7. -r filename 如果 filename可讀,則為真 如: [ -r /var/log/syslog ]
8. -w filename 如果 filename可寫,則為真 如: [ -w /var/mytmp.txt ]
9. -x filename 如果 filename可執行,則為真 如: [ -l /usr/bin/grep ]
10. filename1-nt filename2 如果 filename1比 filename2新,則為真 如: [
/tmp/install/etc/services -nt /etc/services ]
11. filename1-ot filename2 如果 filename1比 filename2舊,則為真 如: [
/boot/bzimage -ot arch/i386/boot/bzimage ]
1. -z string 如果 string長度為零,則為真 如: [ -z "$myvar" ]
2. -n string 如果 string長度非零,則為真 如: [ -n "$myvar" ]
3. string1= string2 如果 string1與 string2相同,則為真 如: ["$myvar" = "one two three"]
4. string1!= string2 如果 string1與 string2不同,則為真 如: ["$myvar" != "one two three"]
1. num1-eq num2 等於 如: [ 3 -eq $mynum ]
2. num1-ne num2 不等於 如: [ 3 -ne $mynum ]
3. num1-lt num2 小於 如: [ 3 -lt $mynum ]
4. num1-le num2 小於或等於如: [ 3 -le $mynum ]
5. num1-gt num2 大於 如: [ 3 -gt $mynum ]
6. num1-ge num2 大於或等於如: [ 3 -ge $mynum ]
! 非運算,表示式為 true 則返回 false,否則返回 true。 [ ! false ] 返回 true。
-o 或運算,有乙個表示式為 true 則返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a 與運算,兩個表示式都為 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。
&& 邏輯的 and [[ $a -lt 100 && $b -gt 100 ]] 返回 false
|| 邏輯的 or [[ $a -lt 100 || $b -gt 100 ]] 返回 true
輸出重定向 標準資訊數字
1>/dev/null 2>&1
>前面的數字:
0代表標準輸入
1代表stdout標準輸出,預設值為1,所以」1>/dev/null」可以簡寫為」>/dev/null」,全部輸入
2代表stderr標準錯誤輸出,只有命令返回異常的錯誤資訊才會輸入到後面,正常的資訊會列印出來
2>&1
代表把stderr標準錯誤輸出 重定向 到1表示的stdout標準輸出所在的地方,也就是 /dev/null
注意2>1這裡的1表示的是檔名,而不是標準輸出
/dev/null 代表空裝置檔案
所以,1>/dev/null 2>&1的解釋就是
將stdout標準輸出重定向到空裝置檔案/dev/null ,同時將stderr標準錯誤輸出的重定向跟stdout標準輸出重定向一致,也輸出到空裝置檔案/dev/null。
$0 指令碼名
$n 引數
$# 引數個數
$* 所有引數內容
$@ 所有引數
$? 上個命令或函式的返回值
[ "$show_detail" == "1" ] && echo "&&" || echo "||"
裡面為真就執行&&後面的,為假就執行||後面的
[ "$show_detail" == "1" ] || echo "||"
單獨乙個條件也適用
[ "$show_detail" == "1" ] && ||
條件中多行語句使用{}包括
#!/bin/bash
i=1sum=0
while [ $i -le 100 ]
do let sum=sum+$i
let i++
done
#!/bin/sh
dev=sdb1
n=$1
a=1while true
do dd if=/dev/zero of=$n-$a.img bs=1m count=16 2>/dev/null
# sync
if [ $a -eq 66 ]; then
a=1else
a=`expr $a + 1`
fi done
C 零散筆記
關於控制項 控制項實質就是乙個類 屬性中的name就是它例項後的變數名 屬性中的其他東西就是類中的變數或函式 例如 可以直接通過name.backcolor color.yellow 來直接操作控制項的背景顏色 color類 裡面封裝的大量的顏色變數 r,g,b 通過color.blue呼叫 col...
Unity零散筆記
1 預處理 在c 中的預處理功能很弱。除了使用 if else end 之外,還可以嘗試使用 system.diagnostics.conditional unity editor 這種屬性條件。2 carontefx外掛程式 這個外掛程式很好,但是不適合做遊戲,它的物理模擬應該是給做電影用的。好像...
零散的shell使用小結
入職這段時間大量使用shell,有一些零散的點,記在這裡備忘。一 shell種的if shell中的if與c中的if用法有很大區別,一般是結合 使用 目前我只這麼用過 例如if a eq 0 then do done。中括號實際上起真正的判斷作用,需要特別注意的是,和 兩邊都需要有空格。中,與數字比...