Mirki, proszę was o radę: chcę zrobić logowanie ruchu przy użyciu socata. Problem w tym, że zależy mi na pliku z czystym ASCII:
Wymyśliłem coś takiego:

socat -d -d -lf /var/log/socatPortA.log -x 2> >(xxd -r -p > /home/pi/scripts/dump.log) SYSTEM:'socat - "pty,link=/home/pi/ttyVUSB0,raw,echo=0"' /dev/ttyAMA0,b9600,$
Jesli stderr przekazuję bezpośrednio do pliku (wtedy otrzymuję wartości hexalne a nie o to mi chodzi) to wszystko śmiga.
Jeśli jednak chcę w locie konwertować do ASCII za pomocą 2> >(xxd -r -p >
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#linux #bash #shell #pomocy
Czołem, czy jest mi ktoś w stanie pomóc?
Muszę sformułować warunek w skrypcie w bashu, który zwraca true jeśli znalazł plik, false w przeciwnym wypadku.
Mam na razie tak:

if find $KATALOG -amin -$OPCJA1 -mmin -$OPCJA2 -name $PLIK -print -quit | grep -q .
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

[skrypt na vps]

zalogowany=$[users |sed "s/ /\n/g" |uniq |grep -c -E "^$1$"]

odcinek z basha do skryptu wczytującego z podanej formy s[123456], w nawiasie klamrowym mogą być różne
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

jak chcesz pracować na kolumnach to zacznij używać awk będzie ci prościej i wykluczysz sed oraz grep - będzie działać szybciej
  • Odpowiedz
Mało skryptów piszę i nie umiem tego dobrze robić. Proszę o pomoc :) Tzn może w ogóle źle do tego podchodzę, chcę ładny skrypt z feedbackiem, mówiącym że użyłeś złych parametrów.
Mam takie coś:

ARGUMENTARRAY=(update, test)
if [[ $# -eq 0 ]] ; then
echo "Please provide one of:
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Wpisuję np w terminalu jakąś zmienną np. nazwa=wykop
ta zmienna jest alokowana w pamięci RAM(?), i mam takie pytanie jak usunąć tego typu zmienne, zwolnić pamięć alokowaną?

#bash #linux
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@d1l4x: Jak się logujesz to uruchamiana jest powłoka czyli to, co wyświetla wiersz poleceń, akceptuje znaki które wprowadzasz i wykonuje Twoje polecenia. Jak wpisujesz nazwa=wykop to jest to zmienna przechowywana przez tę powłokę (program) w jej pamięci i istnieje tylko do czasu aż jej (powłoki) nie zamkniesz. Jeżeli Twoją powłoką jest bash (najprawdopodobniej tak jest) to usunięcie zmiennej możesz zrealizować za pomocą:

unset nazwa
  • Odpowiedz
Mirki spod tagu #programowanie oraz #bash. Mam taki problem: załóżmy że mam program generujący (niedeterministyczne) rozwiązanie. I teraz chciałbym w pętli odpalać ten program, sprawdzać czy to co wygenerował jest lepsze od dotychczasowej odpowiedzi - i jeżeli tak to ją aktualizować. Najprostszy skrypt mógłby wyglądać tak:

while [ 1 ] ; do
./program > out.txt
if [ jakis_tam_warunek ] ; then
cp out.txt
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@noweKontoNr69: Przecież jeśli plik best.txt jest urwany to znaczy, że rozwiązanie jest out.txt (skoro przerwane jest kopiowanie)

Albo umieść kopiowanie w nowym niezależnym wątku. Przerywając pętle wątek kopiowania się dokończy nieprzerwany.
  • Odpowiedz
Widziałem gdzieś, ale nie mogę tego znaleźć. Chcę wylistować pliki w katalogu o podanych rozszerzeniach, ale coś mi nie wychodzi
for file in *.{png,jpg}; do ..., próbowałem również {png|jpg}
Nie chcę bawić się w find, bo ta krótsza składnia może mi się przydać na przyszłość.

#bash #linux
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@grzesiek123321: Chyba nie rozumiem. Pokaż resztę skryptu albo dokładniej opisz co chcesz zrobić i gdzie masz błąd. I z ciekawości czemu robisz tak na około a nie tak jak ci napisałem w pierwszym komentarzu? W sensie to jest jeszcze krótsza składania.

PS z tą pętlą będziesz miał problem jak będziesz miał spacje w nazwach plików png i jpg - skrypt ci się rozjedzie.

Dobra zrozumiałem, gdzie masz błąd.
  • Odpowiedz
#linux #bash #windows #git

Postanowiłem przetestować basha-a dołączonego do klienta git-owego, nigdy nie miałem przekonania do wszelkich cygwinów i tym podobnych rozwiązań. Pierwsze spotkanie z MINGW64, czy raczej Gitbash. pozytywne. Proste skrypty operujące na plikach śmigają bez problemu.
awk jest. działa. proste operacje są. w sumie jest ok.

function cpcontent {
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pokukma: Zdecydowanie tak! Był moment, że instalowałem samego gitbasha, bo gita nie potrzebowałem a skrypty chciałem pisać pod windą. Zdecydowanie zdawał egzamin. Obecnie gdy mówi się o powłoce w nowych Windowsach, pewnie gitbash już nie będzie tak potrzebny.
  • Odpowiedz
Dzisiaj w Packtcie za darmo:

Mastering Linux Shell Scripting

Master the complexities of Bash shell scripting and unlock the power of shell for your enterprise

Identify the high level steps such as verifying user input, using command lines and conditional statements in creating and executing simple shell scripts
piwniczak - Dzisiaj w Packtcie za darmo:

Mastering Linux Shell Scripting

 Master...

źródło: comment_6GecBWAuCU0EKD7uOqlTu5LU9jDRL7oC.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj w Packtcie za darmo:

Linux Shell Scripting Cookbook

Fans of the GNU/Linux operating system can tell you that it comes with a complete development environment that’s stable, reliable, and extremely powerful. However, many Linux users haven’t yet mastered shell commands and aren’t able to use the Linux shell to its full potential. This eBook is a collection of over 110 essential command-line recipes with practical applications that will take you from a
piwniczak - Dzisiaj w Packtcie za darmo:

Linux Shell Scripting Cookbook

 Fans of...

źródło: comment_O27zi9WDTXXc7Rr4AqsaT7Zz4yhOAoWn.jpg

Pobierz
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Korzystam z Cygwina pod Windows 10. Szkoda mi poświęcać więcej czasu na rozwiązanie tego problemu, które pewnie będzie tak błahe, że nie jestem go w stanie zauważyć.

Skrypt: http://wklej.org/id/3041885/

Wczytuje z klawiatury miesiąc (w postaci 01, 02, 05, 10, itd.) następnie tworzy archiwum o odpowiedniej nazwie z odpowiedniego katalogu (nomenklatura katalogów 01.2017, 11.2015 itd.).

To,
avangarda - Korzystam z Cygwina pod Windows 10. Szkoda mi poświęcać więcej czasu na r...

źródło: comment_qiR1QgyPXAWFO2P6CfPgJPqvskQqoR8F.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SzlomoBronsztajn: Sprawdzę w domu, wydaje mi się, że w CMD nie będzie problemów.

Co do Cygwina - na moje potrzeby wystarcza (albo i nie jak się okazuje), same proste skrypty i możliwość korzystania z linuxowych poleceń. O MSYS2 pierwszy raz słyszę i na pewno sprawdzę. VM odpada, za dużo zasobów i to trochę będzie jak zaprzęganie konia do ciągnięcia pustego wózka z Biedry. Odpalam wirtualkę tylko jak mam jakiś grubszy
  • Odpowiedz
Potrzebuje synchronizować dane (pliki), rytmicznie (raz na 30min?), automatycznie między dwoma serwerami linuxowymi bez x'ów. Najlepiej z racji oszczędności przepustowości - robiłbym to przyrostowo/różnicowo.
Czy powinienem się zainteresować?
#bash #linux
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Treść przeznaczona dla osób powyżej 18 roku życia...
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach