看板 Linux 關於我們 聯絡資訊
推文不好回 你的for寫的方式怪怪的 我查了一下bash的for用法,跟你不太一樣 回歸正題 你的問題出在傳遞給第一個awk的參數 你使用"{print $i}",這樣會導致$這個符號無法傳遞給awk 我改成用'單引號之後包夾$i變數 for ((i=60;i<=62;i=i+2)) do cat aa|awk -F'>' '{print $'$i'}'|awk -F'<' '{print $1}' done ※ 引述《piimaila (肥仔)》之銘言: : 標題: [問題] bash問題請教~ : 時間: Mon Apr 23 16:34:26 2012 : : 請問各位大大 : 我的shell如下 : : cat aa|awk -F'>' '{print $60}' : cat aa|awk -F'>' '{print $62}' : cat aa|awk -F'>' '{print $64}' : : 而如果我想要用迴圈 則awk內的數字就要自動加 : 可是 : 如果我使用 : for i in {60..62..2} : do : cat aa|awk -F'>' "{print $i}"|awk -F'<' '{print $1}' : done : echo "===============" : cat aa|awk -F'>' '{print $60}'|awk -F'<' '{print $1}' : cat aa|awk -F'>' '{print $62}'|awk -F'<' '{print $1}' : exit : : : 執行結果為 : : 60 : 62 : ================ : 31.29 : 31.35 : : 分隔線前後表現卻不相同 : 我要如何寫 才能夠使迴圈內的表現 和迴圈外的表現一致呢? : : 謝謝大家 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 60.248.18.139 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.67.49.191
piimaila:3q...感謝回答 04/24 13:20
dio833:我查了一下for i in {60..62..2}的用法是bash 4.0之後新增 04/24 16:35
dio833:我算是長知識了 04/24 16:35