Nowe posty

xx Fedora xfce i flatpak oraz snap (2)
Dzisiaj o 11:01:14
xx Strona o testach penetracyjnych, hackingu (34)
2022-05-25, 11:40:38
xx Repozytorium z czcionkami M$ (2)
2022-05-24, 17:58:30
xx Pomoc w wyborze środowiska graficznego (11)
2022-05-23, 22:41:56
xx Usunąłem przez przypadek /bin co zrobić? (2)
2022-05-23, 21:36:24
xx Obrócony obraz lubuntu, xubuntu na lenovo Miix 320 (6)
2022-05-23, 11:56:25
xx Pierwsze kroki w Arch (9)
2022-05-22, 23:39:51
xx DBus (0)
2022-05-22, 12:47:35
xx Przedni panel (1)
2022-05-20, 01:34:35
xx Modem Medion S4222 jak zainstalować aplikację do jego obsługi? (52)
2022-05-18, 10:14:49

Autor Wątek: Skrypty linux Prosze o pomoc  (Przeczytany 370 razy)

Offline maciejkloda1

  • Nowy na forum
  • *
  • Wiadomości: 5
    • Zobacz profil
Skrypty linux Prosze o pomoc
« dnia: 2022-01-24, 18:27:17 »
Proszę o pomoc w zadaniu z załączniku
Z góry dziękuje

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2812
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #1 dnia: 2022-01-24, 21:06:19 »
1. Podziel się kodem dotąd napisanym
2. Z czym dokładnie masz problem
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline maciejkloda1

  • Nowy na forum
  • *
  • Wiadomości: 5
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #2 dnia: 2022-01-25, 09:27:27 »
#!/bin/bash
echo "Zadanie ze skryptów"
echo "Skrypt liczy reszte z dzielenia dwoch podanych przez ciebie liczb"
echo "Podaj pierwsza liczbe"
read L1
echo "Podaj druga liczbe"
read L2
if [ $L2 -eq 0 ];
then
    echo "Druga liczba jest rowna 0 - nie mozna podzielic"
else
    D= `expr $L1 % $L2`
    echo "wynik dzielenia wynosi:$D"
fi

tyle dotąd mam
mam problem z wyswietlaniem sie wyniku
« Ostatnia zmiana: 2022-01-25, 10:52:21 wysłana przez Paweł Kraszewski »

Offline maciejkloda1

  • Nowy na forum
  • *
  • Wiadomości: 5
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #3 dnia: 2022-01-25, 09:31:13 »
a tutaj jak to wyglada

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2812
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #4 dnia: 2022-01-25, 11:07:27 »
1. Wbrew pozorom spacje są ważne.

#!/bin/bash

X=`uname`    # Uruchamia uname i wynik podstawia do X (czyli X będzie równe Linux)

# -----

X= `uname`   # Uruchamia wynik działania uname (czyli próbuje uruchomić program Linux) ze zmienną środowiskową X ustawioną na łańcuch pusty.
# to ekwiwalent
X="" `uname`
# czyli
X="" Linux

Zacznij korzystać z narzędzia ShellCheck, to łapie naprawdę dużo błędów. Ja pokazałem tylko ten bezpośrednio uniemożliwiający działanie, ShellCheck pokaże więcej (manifestujących się przy nietypowych argumentach).

2. W expr operator % to nie dzielenie.

Cytuj
ARG1 % ARG2: arithmetic remainder of ARG1 divided by ARG2
« Ostatnia zmiana: 2022-01-25, 11:13:09 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline maciejkloda1

  • Nowy na forum
  • *
  • Wiadomości: 5
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #5 dnia: 2022-01-25, 11:08:41 »
Dzięki wielkie za odpowiedz

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2812
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #6 dnia: 2022-01-25, 11:16:30 »
Na przyszłość — jeżeli będziesz od razu wklejał swoje podejście do rozwiązania pokazujące, że naprawdę próbowałeś (jak teraz) i konkretny problem, dużo szybciej dostaniesz odpowiedź.

Mamy alergię na rozwiązywanie zadań domowych od zera — a tu wykazałeś się, że wpadłeś w nieoczywistą pułapkę.

A, i taka podpowiedź na przyszłość: jak zaraz pod #!/bin/bash dasz linijkę zawierającą set -x, to skrypt w czasie pracy będzie drukował dokładnie co w danym momencie wykonuje:

#!/bin/bash
set -x

# ... reszta skryptu

Porównanie wyników dobrej i złej wersji:

+ echo 'Zadanie ze skryptów'                                    + echo 'Zadanie ze skryptów'
Zadanie ze skryptów                                             Zadanie ze skryptów
+ echo 'Skrypt liczy reszte z dzielenia dwoch podanych przez    + echo 'Skrypt liczy reszte z dzielenia dwoch podanych przez
Skrypt liczy reszte z dzielenia dwoch podanych przez ciebie l   Skrypt liczy reszte z dzielenia dwoch podanych przez ciebie l
+ echo 'Podaj pierwsza liczbe'                                  + echo 'Podaj pierwsza liczbe'
Podaj pierwsza liczbe                                           Podaj pierwsza liczbe
+ read L1                                                       + read L1
+ echo 'Podaj druga liczbe'                                     + echo 'Podaj druga liczbe'
Podaj druga liczbe                                              Podaj druga liczbe
+ read L2                                                       + read L2
+ '[' 3 -eq 0 ']'                                               + '[' 3 -eq 0 ']'
++ expr 2 % 3                                                   ++ expr 2 % 3
+ D=                                                          | + D=2
+ 2                                                           | + echo 'wynik dzielenia wynosi:2'
./skr.sh: linia 15: 2: nie znaleziono polecenia               | wynik dzielenia wynosi:2
+ echo 'wynik dzielenia wynosi:'                              <
wynik dzielenia wynosi:                                       <

A, i sorki, faktycznie chodziło ci o resztę z dzielenia. Zmylił mnie tekst w wyświetlaniu wyniku.
« Ostatnia zmiana: 2022-01-25, 11:28:19 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline maciejkloda1

  • Nowy na forum
  • *
  • Wiadomości: 5
    • Zobacz profil
Odp: Skrypty linux Prosze o pomoc
« Odpowiedź #7 dnia: 2022-01-25, 11:17:55 »
Zrozumiała sprawa, jeszcze raz bardzo dziękuje