.
asdf: Programowanie (bash) Jest ktoś?

(początki)
7 lis 19:20
asdf:
7 lis 19:43
7 lis 19:44
asdf: Jest ktoś z programowania? (Nie potrzebne mi są tutoriale − mam ich dużo)
7 lis 20:19
__std__call__: Rzuć zadanie, może będę wstanie pomóc.
7 lis 20:25
asdf: Napisz skrypt wyświetlający na ekranie następujące napisy:
− ”Usmiechnij się ” (wraz z cudzyslowami)
− ”Usmiechnij się ” (wraz z cudzyslowami, ale bez użycia apostrofów)
− ‘Usmiechnij się ’ (wraz z apostrofami)
− ‘Usmiechnij się ’ (innym sposobem)
pierwszy skrypt:
#!/bin/bash
echo ""Usmiechnij sie""
Inny sposób:
#!/bin/bash
x='"Usmiechnij sie"'
A reszte jak zrobić?
7 lis 20:31
asdf: jeszcze zrobilem trzecie:
#!/bin/bash
echo
"'Usmiechnij sie'
"
ale drugiego cos nie moge
7 lis 20:34
__std__call__: Dziwne te zadania, niepraktyczne. Jest chyba takie przełącznik −aaa gdzie aaa to kod
szesnastkowy znaku, który ma zostać wyświetlony − sprawdź kod apostrofu i spróbuj.
7 lis 20:42
asdf: No właśnie dziwne
7 lis 20:47
__std__call__: choćby tak:
echo −n −e "\x27" "ggg"
echo −e "\x27"
7 lis 20:48
asdf: co robi znak \? bo nie mogę znaleźć
7 lis 20:53
__std__call__: Jest to znak, który informuje interpreter, że kod w cudzysłowu jest kodem sterującym a nie po
prostu tekstem.
7 lis 20:55
__std__call__: Czy może lepiej − po prostu interpreter w ten sposób poznaje, że ma parsować zawartość
cudzysłowu − czego normalnie nie robi bo po prostu jego zawartość wyświetla.
7 lis 20:56
asdf: parsować dokładnie co to znaczy?

(sorry...to dopiero początki

)
7 lis 20:58
__std__call__: Mówią prościej po prostu interpreter gdy "czyta" kod, który napiszesz analizuje go pod kątem
wystąpienia słów kluczowych np. if, then czy echo. Gdy je znajdzie to podejmuje pewne
działania − to poszukiwania to parsowanie. Zobacz, ze jeśli napiszesz w w cudzysłowu "echo $"
to nic zostanie wyświetlona zawartość tylko na wyjściu pojawi się echo $ a wynika to z
tego, że interpreter nie wykonuje kodu gdy jest w cudzysłowu. Pewnym odstępstwem od tego są
kody sterująca np. kody szesnastkowe znaku, które będąc w cudzysłowu mogą być parsowane ale
musi jako pierwszy znak w łańcuchu stać \.
7 lis 21:04
__std__call__: echo "\" AAA \""
Tak też działa, co do cudzysłowu.
7 lis 21:05
asdf: Ok dzięki!
7 lis 21:11
asdf: Napisz ‘skryptA’ , który utworzy i uruchomi ‘skryptB’. Utworzy on i uruchomi kolejny skrypt o
nazwie ‘skryptC’ , który wyświetli na ekranie tekst: I DO IT!
skryptA→skryptB→skryptC→’I DO IT’
ROBIĘ TAK:
touch skryptA
chmod 775 skryptA
pico skryptA
i w edytorze:
#!/bin/bash
touch skryptB
chmod 775 skryptB
./skryptB
touch skryptC
chmod 775 skryptC
./skryptC
echo "#!/bin/bash
Udalo sie!">skryptC
./skryptC
Ale nie działa
7 lis 21:23
asdf: ?
7 lis 21:28
asdf: ?
7 lis 21:34
asdf: zrobiłem takie coś:
#!/bin/bash
touch skryptB
chmod 777 skryptB
echo '#!/bin/bash'>>skryptB
echo 'touch skryptC'>>skryptB
echo 'chmod 777 skryptC'>>skryptB
./skryptB
chmod 777 skryptC
./skryptC
echo '#!/bin/bash'>skryptC
echo 'echo "udalo sie!"'>>skryptC
./skryptC
działa, ale czy jest zrobiony pod zadanie?
7 lis 21:47
__std__call__: Wydaje się, że tak.
7 lis 21:55
asdf: ok dzieki
7 lis 21:57