Puncte:0

Scriptul shell Bash care apelează un program extern nu afișează rezultatul către terminalul curent

drapel sa

Sunt nou în scripturile shell. Fac un raspberry pi fără cap care pirata rețelele WiFi (în scopuri educaționale) cu un program numit wifite. Planul este ca acesta să trimită apoi un e-mail către cu un atașament al rezultatului (neimplementat încă).

Deci, acest program este interactiv, așa că trebuie să trimit intrarea de la tastatură prin care fac asta xdotool. Problema principală este că atunci când încerc Ctrl+C după ceva timp, trimite intrarea către terminalul curent de pe ecran, dar wifite rulează pe fundal și nu primesc nicio ieșire către terminal.

Acum, este în regulă, nu am nevoie de ieșire pe ecran, dar trebuie să pot trimite într-un fel intrarea de la tastatură la wifite și cred că cea mai ușoară modalitate este de a forța ieșirea wifite către terminalul actual, astfel încât xdotool să poată trimite intrări de la tastatură. Iată scenariul:

#!/bin/sh
dormi 1m
`sudo wifite --kill | tee output.txt`
dormi 1m
`tasta xdotool ctrl+c`
`xdotool key Enter`

Anunțați-mă dacă pot face ceva pentru a îmbunătăți scenariul. Poate că aș putea folosi programe mai eficiente în cadrul scriptului. Tot ajutorul este foarte apreciat.

FedKad avatar
drapel cn
De ce folosești backtick-uri în comanda `sudo`? De ce citați ghilimele simple ultimele două comenzi?
Hariss Gills avatar
drapel sa
Am citit undeva că trebuie să folosiți backtics atunci când rulați aplicații externe și ghilimelele sunt o greșeală de formatare, îmi pare rău.
drapel hr
@HarissGills poți folosi butonul [editare] de sub postarea ta pentru a corecta formatarea
Hariss Gills avatar
drapel sa
@steeldriver, mulțumesc, am rezolvat asta acum
Koen avatar
drapel ca
https://unix.stackexchange.com/questions/48392/understanding-backtick/48393

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.