Zadania w języku Bash – prośba o wytłumaczenie

0

Witam od niedawna uczę się tego języka i robie różna zadania itp ale niektóre nie wiem jak ruszyć, to jest niby proste ale ja siedzę nad tym i nie mam pojęcia co zrobić. Czy mógłby mi ktoś pomóc to zrobić albo chociaż napisać wzór gdzie mam podstawić jakieś dane.

O to zadanie : Przygotować 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

dopisanie do pliku wyniku z mnożenia argumentów 1 i 2

dopisanie do pliku tekstu "nazwa skryptu: ilość przekazanych zmiennych: " wartości liczbowe mają zostać uzupełnionie automatycznie.

dopisanie do pliku tekstu: "Nazwa użytkownika to: " wartośc ma być uzupełniona automatycznie

dopisanie do pliku zajętości dysków systemowych w wartościach "human readable"

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"

Proszę o pomoc kogoś kto zna ten język
Pozdrawiam

0
vpiotr napisał(a):

Co do nr 1:
https://www.php.net/manual/en/features.commandline.php

Wybacz ale nie rozumiem. Ja już mam coś takiego

#1/bin/bash

data='date +%Y - %n - %d_%H - %M
mnożenie= expr $1 \* $2 


echo $data > $3


echo $mnozenie >>$3
echo "nazwa skryptu basename $0" >>$3
echo "nazwa użytkownika to USER" >>$3
df -h >>$3
du -h -l -a / home >>$3

Nie mam pojęcia jak napisać instrukcje warunkową do tego :(
i jak zrobić punkt 1a

0

No ale zdecyduj się, czy to ma być bash, czy PHP^^

Skoro PHPa chcesz, to z poziomu CLI powinieneś wywołać tylko plik ze skryptem PHP + przekazać argumenty. A już z poziomu PHP zrobić to, co masz.

0

Tak masz racje boże, to nie PHP tylko Bash, pomyliło mi się przepraszam
A odnośnie tego co napisałeś to problem jest taki że ja nie wiem co dalej, nie mam pojęcia jak napisać tą instrukcje warunkową i punkt 1a,
Tylko tego mi brakuje i liczyłem że tu mi ktoś może z tym pomoże

0
test "$3" && filename="$3" || filename="123456"

echo $filename
0

To jest do punktu 1a czy to ta instrukcja warunkowa ?

0

Tak właśnie robię ale niektóre rzeczy dla mnie to jeszcze czarna magia że tak powiem. Jedyne co mi zostało to napisać jęszcze instrukcje warunkową, siedzę i oglądam poradniki ale jest ciezko. Korzystając z okazji może nie wiesz ale się spytam, więc też może jak ogarnąć ta instrukcje warunkową. Ja wiem że to musi być if echo ale nie wiem jaki ma być w tym przypadku warunek :( a i też tak odpowiedziałeś że wolę się dopytać do jest ten punkt a1 bo nie ma if itp tak ?

0

Dobra już to ogarnelem więc mam jeszcze tylko jedno pytanko i mogę się już zegnac mianowicie jak określić w tym a raczej nadać te 3 argumenty ( $1,$2,$3) bo teraz próbuje to rozgryźć i to by było na tyle :). Za wszystko dziękuję

0

To są argumenty, które podajesz w czasie wywoływania skryptu.
Przykład

[email protected]:~/4p_bash# bash skrypt.sh 1 2 3
Zmienna $1 1
Zmienna $2 2
Zmienna $3 3
[email protected]:~/4p_bash# bash skrypt.sh ala ma kota
Zmienna $1 ala
Zmienna $2 ma
Zmienna $3 kota
[email protected]:~/4p_bash# bash skrypt.sh a kot ma aids
Zmienna $1 a
Zmienna $2 kot
Zmienna $3 ma
[email protected]:~/4p_bash# ls
skrypt.sh
[email protected]:~/4p_bash# cat skrypt.sh 
#!/bin/bash

echo "Zmienna \$1 $1"
echo "Zmienna \$2 $2"
echo "Zmienna \$3 $3"

Możesz też nadać skryptowi flagę eXexute:

chmod +x ./skrypt.sh

i wywoływać to w ten sposób:

./skrypt.sh argument1 argument2 argument3 ... 
0

Okej ostanie pytanie, pewnie mega głupie ale się spytam ponieważ nie rozumiem co wstawić tutaj jeśli chodzi o mnie ? Bo chyba nie mój email?
[email protected]:~/4p_bash# bash skrypt.sh 1 2 3
chodzi mi tylko o początek do tej 4 i do czego odnosi się ta 4 ?

0

Nie nie miałem dlatego tak proszę o pomoc. Dopiero się tego ucze
Ja zrozumiałem to zadanie i ten skrypt tak czy możesz zobaczyć i ocenić ?
Wiem że musze sam sprawdzić ale chciałbym znać też opinie osoby obeznanej jeśli to nie problem oczywiscie

#1/bin/bash

data='date +%Y - %n - %d_%H - %M

mnożenie= expr $1 * $2
echo $data > $3

test "$3" && filename="$3" || filename="6630"
echo $filename

echo $mnozenie >>$3
echo "nazwa skryptu basename $0" >>$3
echo "nazwa użytkownika to USER" >>$3

df -h >>$3
du -h -l -a / home >>$3

bash skrypt.sh 4 5 6
Zmienna $1 4
Zmienna $2 5
Zmienna $3 6

#!/bin/bash

echo "Zmienna $1 $1"
echo "Zmienna $2 $2"
echo "Zmienna $3 $3"

chmod +x ./skrypt.sh

0

Tutaj masz jakiś interpreter:
https://repl.it/languages/bash

W pliku main.sh wpisujesz zawartość pliku.
W prawej kolumnie wpisujesz polecenia.

Proponuję ci żebyś przetestował wszystkie podpowiedzi z tego wątku, kolejno, abyś dobrze to zrozumiał.
Wszystko w Twoich łapkach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1