我正在測試移動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
我不知道爲什麼這些奇怪的字符和我在做什麼錯。
我很好奇'echo $ deviceshortname | xxd'輸出給你。 – sarnold 2012-01-03 12:32:24
@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
您正在努力設置'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