2017-07-01 44 views
0

我已經安裝了一個機智PI 2我RPI3 一個日誌文件,但我想臨時將其導出到一個spcific文件出口溫度到

我可以運行一個腳本調用witty.sh和那麼我需要按8或Ctrl + C退出

>>> Current temperature: 33.50°C/92.3°F 
>>> Your system time is: Sat 01 Jul 2017 20:29:46 CEST 
>>> Your RTC time is: Sat 01 Jul 2017 20:29:46 CEST 
Now you can: 
    1. Write system time to RTC 
    2. Write RTC time to system 
    3. Synchronize time 
    4. Schedule next shutdown [25 15:04:00] 
    5. Schedule next startup [25 15:05:00] 
    6. Choose schedule script 
    7. Reset data... 
    8. Exit 
What do you want to do? (1~8) 

我只想輸出第一行。

我試圖

sudo ./wittyPi.sh | grep Current | awk '{ print $4 }' > temp.log 

但it's問我要號碼,然後給臨時在temp.log

是否可以插入一些額外的代碼來generete Ctrl + C或sometinhg到底 ?

+0

如果你使用'echo 8 | sudo。/ wittyPi.sh'? – melpomene

+0

這有助於:) 但是,當我從cronjob運行它,temp.log我空。 它的工作原理當我運行我自己在命令行 權限是777 temp.log –

回答

0

也許更好的方法是查看「utilities.sh」文件中的get_temperature()函數,並查看它是如何實現的。它只涉及一些I2C通信。

0

只需使用一個字符串,這裏提供輸入:

$ cat tst.sh 
echo "Type something:" >&2 
read foo 
echo "$foo" 

$ ./tst.sh <<<stuff | sed 's/u/X/' 
Type something: 
stXff 

,如果你的shell這裏不支持的字符串,然後使用此文件來代替:

$ ./tst.sh <<EOF | sed 's/u/X/' 
> stuff 
> EOF 
Type something: 
stXff 

所以,你會怎麼做(你永遠需要,當你使用grep的AWK):

sudo ./wittyPi.sh <<<8 | awk '/Current/{ print $4 }' > temp.log 

或:

sudo ./wittyPi.sh <<<8 | awk 'NR==1{ print $4 }' > temp.log