幫看看一個shell腳本里的語句
首先你的if語句是寫在awk代碼中的,awk的語法和shell的語法是不一樣的,倒是跟C的語法很像,我猜你那個$2以及$maxSize應該是shell腳本中的變量吧,要想在AWK中使用,必須使用-v將變量傳到AWK中,而且AWK中的表示大于直接用>的。
程序改成這樣:awk -F "\t" -v var1="$1" -v var2="$maxSize" '{ if(var1 > var2) print $1}'你把那些個引號整一下,我這打的可能是中文的,你可以試一下! 沒看到你的上下文,不過你知道這個就會改了吧!。
shell腳本中的if中多條件語句如何寫
寫法:if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi
擴展資料:
shell腳本if判斷多個條件
1、如果a>b且aif (( a >b )) && (( a $b ]] && [[ $a 2、如果a>b或aif (( a >b )) || (( a $b ]] || [[ $a 3、 -o = or , -a = and , 但我一向只用 || 或者 &&
4、-ne 比較數字 (numberic) ; != 比較字符 (string), 但后者拿來比較數字也可,只是不是標準用法 -lt 是等同 -lt , -eq , -gt , -ge -le , 這些是 test , 就是 [ ] 這個內建命令使用的條件操 作符, 數字用, = , != 字符用, == 這個該是 [[ ]] 用的, 可用來比對正規表示式, 但用在 [ ] 也可。
shell腳本里語句解釋
grep做文本過濾,查找操作sed做文本替換操作,將 [{}="] 這個[ ]集合中的任意內容,只要出現都替換為空格。
awk篩選出每行的特定字段,$5, $6, $9 $10 $11,打印出來并以空格分隔。sort排序uniq去重結果保存到mk_*文件。
| 就是個管道符,把上一個命令的處理結果傳遞給下一個命令繼續處理。要知道每步的結果,可以一個個地嘗試:比如,先試試:grep ^SERVER /SYSTEM//opf/absolute/lib/system_conf_*再試試:grep ^SERVER /SYSTEM//opf/absolute/lib/system_conf_* \ | sed 's/[{},="]/ /g'再試試:grep ^SERVER /SYSTEM//opf/absolute/lib/system_conf_* \ | sed 's/[{},="]/ /g' \ | awk '{print $5 " " $6 " " $9 " " $10 " " $11}'一步步地看輸出結果是什么,對整個過程就了然于胸了。
關于Linux shell腳本的語句
shell 其實很樸素的,比如mode是aaaaa那么`。
。..$*` 就是 `。
*` 作為執行命令的參數。root@ubuntu:~# mode=aaaaaroot@ubuntu:~# echo " $*" *t@ubuntu:~# 上面的例子是雙引號,但是你的例子中的反引號也差不多,psm_cmd程序看到的就是*這個字符串-------*---------#!/bin/bash if [ $1 == "*" ]then echo "yes"else echo "no"fi--------------------------------root@ubuntu:~# res=`./* $*`root@ubuntu:~# echo $resyes這個就很清楚了!!!!!!!!。
linuxshell腳本wak語句中awk'BEGIN{FS="'"'"'";RS="\n"}{for(i=2;
FS表示操作的時候以什么為分割符RS表示記錄分割符(Record Separator)即RS表示的是awk操作最小單位的邊界,而FS是這個最小單位中分割的符號例如:101,John Doe:102,Jason Smith:103,Raj Reddy如果不指定RS,指定FS為“,”,那么awk將101作為第一列,剩下的全部為第二列,如果指定RS=":",那么awk就會將內容作為三“行”,第一列包括101,102和103,第二列包括John Doe,Jason Smith和Raj Reddy。