Przygotuj skrypt przyjmujący 3 argumenty
Wynikiem wykonania skryptu ma być:
1.Wstawienie daty w formacie YYYY-MM-DD HH:MM do pliku o nazwie takiej jak 3 argument
1a. W wypadku nie przekazania 3 argumentu skrypt ustawia nazwę pliku na numer indeksu studenta
2. dopisanie do pliku wyniku z mnożenia argumentów 1 i 2
3. dopisanie do pliku tekstu "nazwa skryptu: ilość przekazanych zmiennych: " wartości liczbowe mają zostać uzupełnionie automatycznie.
4. dopisanie do pliku tekstu: "Nazwa użytkownika to: " wartośc ma być uzupełniona automatycznie
5. dopisanie do pliku zajętości dysków systemowych w wartościach "human readable"
6. dopisanie do pliku zawartości katalogu domowego użytkownika wraz z plikami ukrytymi (niezależnie od nazwy użytkownika) w formie długiej listy w wartościach "human readable"
Czy może ktoś pomóc z powyższym?
[Bash] Przygotuj skrypt przyjmujący 3 argumenty...
- Gosda
- Użytkownik
- Posty: 340
- Rejestracja: 29 cze 2019, o 19:46
- Płeć: Mężczyzna
- Lokalizacja: Oulu
- Podziękował: 42 razy
- Pomógł: 60 razy
Re: [Bash] Przygotuj skrypt przyjmujący 3 argumenty...
Ja, jeśli zaprezentujesz jakąkolwiek pracę samodzielną. Co już masz, co nie działa, czego nie rozumiesz?
Re: [Bash] Przygotuj skrypt przyjmujący 3 argumenty...
Potrzebuje aby ktoś wytłumaczył jak ustawić prawidłowy format daty w skrypcie,
jak dokładnie przedstawia się argumenty w skrypcie.(Dopiero zaczynam z przygodę z bashem)
Nie chcę aby ktoś robił to zadanie za mnie, potrzebuję jedynie wskazówki co można zrobić w poszczególnych punktach.
jak dokładnie przedstawia się argumenty w skrypcie.(Dopiero zaczynam z przygodę z bashem)
Nie chcę aby ktoś robił to zadanie za mnie, potrzebuję jedynie wskazówki co można zrobić w poszczególnych punktach.
- Gosda
- Użytkownik
- Posty: 340
- Rejestracja: 29 cze 2019, o 19:46
- Płeć: Mężczyzna
- Lokalizacja: Oulu
- Podziękował: 42 razy
- Pomógł: 60 razy
Re: [Bash] Przygotuj skrypt przyjmujący 3 argumenty...
Podpowiem, że sam dzień miesiąca można wypisać przez
Argumenty skryptu dostępne są pod zmiennymi
date +%d
, jak poczytasz man date
, to będziesz wiedzieć, jak uzyskać pozostałe pola (miesiąc, rok itd.).Argumenty skryptu dostępne są pod zmiennymi
$1 $2 $3 ...
. Do sprawdzania czy zmienna jest pusta można użyć test -z
(ponownie więcej szczegółów na stronach podręcznika man). Możesz przejrzeć kurs na Ważniaku, nie jest idealny, ale daje jakieś pojęcie: Re: [Bash] Przygotuj skrypt przyjmujący 3 argumenty...
Udało się stworzyć coś takiego,wydaje mi się że skrypt wyświetla się prawidłowo.
Czy może ktoś podpowiedzieć co ewentualnie zmienić?
Czy może ktoś podpowiedzieć co ewentualnie zmienić?
Kod: Zaznacz cały
#!bin/bash
zm1=$1
zm2=$2
zm3=$3
data=`date +%Y-%m-%d"_"%H:%M`
indeks=${zm3:=0000}
echo $data > $zm3
let result=zm1*zm2
echo $result >>$zm3
echo "zm3: Ilość przekazanych zmiennych: $#" >> zm3
echo "Nazwa użytkownika to: $USER" >> $zm3
df-h >> $zm3
ls -lha /home >>$zm3
echo "Dane wrzucone do pliku" $zm3
Ostatnio zmieniony 11 gru 2019, o 20:45 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Brak tagów [code].
Powód: Brak tagów [code].
- Gosda
- Użytkownik
- Posty: 340
- Rejestracja: 29 cze 2019, o 19:46
- Płeć: Mężczyzna
- Lokalizacja: Oulu
- Podziękował: 42 razy
- Pomógł: 60 razy
Re: [Bash] Przygotuj skrypt przyjmujący 3 argumenty...
Uruchomiłeś ten skrypt choć raz? Nie działa co najmniej wyświetlanie wolnego miejsca.
Kod: Zaznacz cały
#!/usr/bin/env bash
### ścieżka bezwzględna - i zabezpieczenie przed systemami, gdzie nie ma pliku /bin/bash
set -e
### skrypt przestanie działać, kiedy jakiekolwiek polecenie zwróci błąd
### przydatne są też: set -u, set -o pipefail
factor1="$1"
factor2="$2"
filename="${3:-0000}"
### nazwy zmiennych po angielsku
### takie, które mówią coś o przechowywanej wartości
### w cudzysłowie, żeby zabezpieczyć się przed spacjami itd.
### nie mam pojęcia, jak uzyskać indeks studenta :-)
{
date "+%Y-%m-%d %H:%M"
### backtick to stary, niezalecany sposób na wywoływanie poleceń
### nie można go łatwo zagnieżdżać, lepsze jest $( )
### tutaj można sobie poradzić w ogóle bez zmiennej
### ponownie, " " dla lepszego radzenia sobie ze spacjami
### let nie jest zalecane
product="$((factor1 * factor2))"
### tylko liczby całkowite są wspierane w ten sposób
### product="$(echo "${factor1} * ${factor2}" | bc)"
### wsparcie dla liczb niecałkowitych, ale wymaga zainstalowanego kalkulatora - bc
echo "${product}"
echo "$0: $#"
### powyższe działa, jeśli skrypt jest uruchamiany: ./skrypt a nie wczytywany przez source skrypy
echo "Nazwa użytkownika to: $USER"
df -h
### argumenty trzeba oddzielać od nazwy programu przynajmniej spacją
ls -ahl "${HOME}"
### katalog /home może nie istnieć, a jeśli istnieje, to zazwyczaj zawiera wszystkie katalogi domowe
} > "${filename}"
# żeby nie powtarzać przekierowania co linijkę...