Re: [問題] bash問題請教~

看板Linux作者 (Dio)時間13年前 (2012/04/23 18:09), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
推文不好回 你的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

04/24 13:20, , 1F
3q...感謝回答
04/24 13:20, 1F

04/24 16:35, , 2F
我查了一下for i in {60..62..2}的用法是bash 4.0之後新增
04/24 16:35, 2F

04/24 16:35, , 3F
我算是長知識了
04/24 16:35, 3F
文章代碼(AID): #1FbIfWlA (Linux)
討論串 (同標題文章)
文章代碼(AID): #1FbIfWlA (Linux)