[英]Awk output to string or case command error
我陷入了一個非常簡單的問題(絕對肯定當解決方案出現時我會感覺到一個假人)。 我需要在bash腳本中讀取一個字符串,然后根據字符串值繼續。 這段代碼現在還沒有用
k=`awk '{ print $1 }' flag.txt`
echo "FLAG = "$k
case "$k" in
"S") echo " Yes it worked - Flag = " $k ;;
"N") echo " NOOOOOOOOOOOO - Flag = " $k ;;
*) echo "Not getting the right string??" ;;
esac
字符串值是正確的,因為echo命令顯示正確的值,flag.txt只包含“S”或“N”(在這種情況下為N)。 絕對卡在這里,無法弄清楚什么是錯的,awk或者是case。 在Ubuntu 12.04工作
腳本輸出:
paco@NIMBUS:~/temp$ cat flag.txt
S
paco@NIMBUS:~/temp$ ./prova2
FLAG = S
Not getting the right string??
如果這是一個愚蠢的問題,請提前感謝您的幫助和對不起。
似乎文件flag.txt
具有CRLF行結尾。 執行以下操作即可確定:
$ awk '{ print $1 }' flag.txt | od
這很可能會回歸:
0000000 006523 000012
0000003
而它應該已經返回:
0000000 005123
0000002
從輸入文件中刪除\\r
,腳本將按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.