2013-07-16 5 views
1

Извините за путаю,печать поле в Терминал Командования

хорошо, на самом деле я хочу, чтобы отправить серийное сообщение на мой Arduino, который подключен к/DEV/ttyACM0 и это можно сделать, введя следующую команду в терминал

$ echo "Hello Arduino" > /dev/ttyACM0 

так, мне нужен мой awk, чтобы отправить команду именно так.

Вот мой PBH.awk файл:

BEGIN{ 
    FS = "[ .]"; 
    RS = "\0"; 
    IGNORECASE = 1; 
}{ 
    for (i=1;i<NF;i++){ 
     if(i == 1){ 
     printf("Diketahui : %s\n",$18);} 
     if($i=="y" && $(i+1)=="=") 
      { 
       printf("  Persamaan : %s %s %s %s %s %s %s %s %s %s %s\n",$(i),$(i+1),$(i+2),$(i+3),$(i+4),$(i+5),$(i+6),$(i+7),$(i+8),$(i+9),$(i+10)) 
       inisialisasi = "stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts" 
       kirim = "echo \"Field2 contains: $2""\" > /dev/ttyACM0" 
       print | inisialisasi 
       print | kirim 
      } 
    } 

} 

и вот soalPBH.txt:

Persamaan gelombang berjalan pada seutas tali dinyatakan dengan y = 0,02 sin (20 π t – 0,2 π x). Jika x dan y dalam cm dan t dalam sekon, tentukan: 

Тогда я бегу мое AWK с

$ awk -f PBH.awk soalPBH.txt 

Моя программа оленья кожа отправьте текст в поле номер 2. С этим что-то не так?

kirim = "echo \"Field2 contains: $2""\" > /dev/ttyACM0" 
+0

Я не вижу, что вы вызываете 'awk' в любом месте вашего кода. 'echo' - это команда оболочки. 'print' и' printf ("% s ...", $ 1, $ 2, ...) '- это методы' awk' для записи вывода. Удачи. – shellter

+0

извините, я добавил свой полный код – user2588680

ответ

0

ОЧЕНЬ неясно, что вы пытаетесь сделать. Разве это так:

$ cat file 
field1 field2 field3 

$ awk '{printf "echo \"Hello Arduino %s\" > /dev/ttyACM0\n", $2}' file 
echo "Hello Arduino field2" > /dev/ttyACM0 

Если нет, уточните свой вопрос и укажите четкий ввод проб и ожидаемый результат.

Учитывая Ваш обновленный вопрос, просто переместить котировка так $ 2 находится вне кавычек вместо внутри них, то есть "$2 вместо $2":

kirim = "echo \"Field2 contains: " $2 "\" > /dev/ttyACM0" 

Тогда скажите нам, если вы все еще есть проблемы.

+0

Спасибо, что это работает как шарм! – user2588680

Смежные вопросы