2012-01-03 120 views
4

我正在測試移動Android設備,並且我想將設備日誌重定向到名稱中指明瞭我的測試日期和時間以及正在測試的設備型號的文件。 對於第一個問題,我已經解決了與如何使用變量作爲文件名創建文件?

now=$(date +"%b_%d_%Y_%k_%M");adb logcat -c;adb logcat|tee $now 

所以:

$ echo $now 
Jan_03_2012_13_09 

和tee命令創建這個文件名的文件。

至於我寫了從亞行獲得外殼的兩項慶典線,即

device=$(adb shell cat /system/build.prop | grep "^ro.product.device=") 
deviceshortname=$(echo $device | sed 's/ro.product.device=//g') 

(不是最佳的,因爲我不是在bash編程很好... :)但我管理的設備型號獲得

$ echo $deviceshortname 
LT15i 

我的問題是如何$now$deviceshortname結合起來,以獲得一個文件名如: LT15i_Jan_03_2012_13_19

我嘗試設置另一個變量:

filename=($(echo $deviceshortname"_"$now)) 

,並得到:

$ echo $filename 
LT15i_Jan_03_2012_13_19 

但如果我嘗試重定向日誌: $亞行logcat |三通$文件名

我獲得這樣的文件:

-rw-r--r--+ 1 ele None  293 Jan 3 13:21 ?[01;31m?[K?[m?[KLT15i_Jan_03_2012_13_19 

我不知道爲什麼這些奇怪的字符和我在做什麼錯。

+0

我很好奇'echo $ deviceshortname | xxd'輸出給你。 – sarnold 2012-01-03 12:32:24

+0

@sarnold:$ echo $ deviceshortname | xxd 0000000:1b5b 3031 3b33 316d 1b5b 4b1b 5b6d 1b5b [01; 31m。[K. [m。[ 0000010:4b4c 5431 3569 0a KLT15i。 – Ele 2012-01-03 13:20:25

+0

您正在努力設置'filename'變量:'filename =「$ {deviceshortname} _ $ now」'。如果你有awk,你可以簡化設置'deviceshortname':'deviceshortname = $(adb shell cat /system/build.prop | awk -F ='$ 1 ==「ro.product.device」{print $ 2}')' – 2012-01-03 17:59:14

回答

2

東西正在給您的輸出添加顏色。它可能是grep(1),它可能是adb,它可能會烘焙到您正在閱讀的/system/build.prop資源中。

如果你是幸運的,它是由grep(1)增加 - 因爲這是超級好用禁用與--color=no

device=$(adb shell cat /system/build.prop | grep --color=no "^ro.product.device=") 
deviceshortname=$(echo $device | sed 's/ro.product.device=//g') 

如果顏色被adb增加,那麼也許有一個命令它會要求它避免着色輸出。

如果顏色以某種方式硬編碼到/sys/build.prop資源中,那麼您需要一些小工具來濾除顏色代碼。我沒有一個方便(它是睡覺時間),但你可以建立一個tr(1)開始刪除\033 ASCII ESC字符。

+0

是的,它是grep!我已經添加了自己的顏色,以便閱讀grep輸出...設置顏色=沒有解決我的問題。謝謝。 – Ele 2012-01-03 13:47:05

0

我不知道如果我失去了一些東西,但是這對我的作品

P1 = foo的 P2 = $(日期+%D_%M_%Y)

貓sample_file.txt | tee $ p1「_」$ p2

2

看起來像是使用adb爲輸出着色的ANSI序列。

+0

也許我開始明白...在adb shell輸出中,ro.product.device是紅色的。實際的設備名稱沒有着色,但使用我的sed命令,我只是替換了字符串,而不是爲輸出着色的順序。說得通? – Ele 2012-01-03 13:28:21

0

只需輸入:echo ${deviceshortname}${now},它就可以解決問題。

相關問題