簡體   English   中英

awk輸出到字符串或大小寫命令錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM