matematykaszkolna.pl
. asdf: Programowanie (bash) Jest ktoś? emotka (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