next up previous contents
Next: 陣列Array與split函數 Up: 變數與欄位處理 Previous: 內定變數   Contents

awk變數與shell變數

awk 與 sed都是幫助shell programming的好工具,因此要跟shell變數溝通, 通式中的 var=value,var就是awk變數,value就是shell變數的值。
    # fs_mounted $dev $mnt_pt $fs_type
    # This is shell script version of fs_mounted, check if the file system is 
    # mounted.
    fs_mounted()
    {
        _BINGO=
        [ $# -eq 3 ] || return $ERRNO_EINVAL
        _BINGO="`$AWK '{if (\$1 == _DEVICE && \$2 == _MNT_PT && \$3 == _FS_TYPE) print \$1}' _DEVICE=$1 _MNT_PT=$2 _FS_TYPE=$3 $MNTTAB`"
        [ "$_BINGO" ] || return -1
        return 0;
    }
shell script的執行與shell command中的awk對於一些保留字元處理跟sed一樣 要小心點 這個例子裡面注意$1 $2 $3,在AWK ' '單引號裡面的是awk的$1$2$3,在 外面_DEVICE=$1...是shell的 $1 $2 $3。_DEVICE _MNT_PT 等是awk的 變數。所以awk的$1 $2 $3\這個escape在前面。也就是說shell 不處理它們並把這些送給awk處理。



Cyril Huang 2002-06-14