Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum zapoznaj się z kilkoma zasadami savoir-vivre'u w wątku Administracja-> Przywitaj się. Wątki z problemami zamieszczone w dziale "Przywitaj się" będą usuwane.

Autor Wątek: skrypty  (Przeczytany 733 razy)

Offline kade282

  • Newbie
  • *
  • Wiadomości: 14
skrypty
« dnia: Lipiec 13, 2017, 09:26:12 pm »
Jestem zmuszona często modyfikować plik index.html.
Chciałam zautomatyzować to za pomocą pliku.sh

cd /ścieżka_do_pliku
echo $1 $2 $3 > index.html
exit 0

Niestety za każdym razem wpisuję inny tekst i nie wiem ile zmiennych będzie mi potrzebnych w pliku.sh.
Czy istnieje jakiś inny sposób, żeby poleceniem echo dopisać kilka ciągów znaków niezależnie od ilości słów?

Bardzo dziękuję za pomoc :)

Offline lesio

  • Hero Member
  • *****
  • Wiadomości: 532
Odp: skrypty
« Odpowiedź #1 dnia: Lipiec 15, 2017, 08:09:20 am »
proponuję:
echo $@ > index.html

Offline lesio

  • Hero Member
  • *****
  • Wiadomości: 532
Odp: skrypty
« Odpowiedź #2 dnia: Lipiec 15, 2017, 09:12:41 am »
Tu jest strona z ciekawymi przykładami operowania argumentami:
https://linuxconfig.org/how-do-i-print-all-arguments-submitted-on-a-command-line-from-a-bash-script

Offline kade282

  • Newbie
  • *
  • Wiadomości: 14
Odp: skrypty
« Odpowiedź #3 dnia: Lipiec 18, 2017, 11:21:29 pm »
Bardzo dziękuję:)
Niezwykle trafna uwaga, jakże prosta, a jednak wypadła z głowy.
Czy znasz może jeszcze patent jak podać przejście do nowej linii jako parametr?
Załóżmy, że potrzebuje, aby strona wyświetlała zawartość w taki sposób:
KOMPUTER WIRTUALNY NR 1
AUTOR STRONY: JANUSZ KOWALSKI
Bo \n nie działa, duża ilość spacji też niestety nie. Za każdym razem plik zapisuje się w postaci:  słowo spacja słowo spacja...
KOMPUTER WIRTUALNY NR 1 AUTOR STRONY: JANUSZ KOWALSKI
Z góry dziękuję za pomoc!

Offline pavroo

  • Global Moderator
  • Hero Member
  • *****
  • Wiadomości: 1612
Odp: skrypty
« Odpowiedź #4 dnia: Lipiec 19, 2017, 12:29:16 am »
Jeśli chcesz zapisać w pliku kilka informacji, jedna pod drugą, musisz każdą dodać oddzielnie, np:
echo $1 > index.html
echo $2 >> index.html
echo $3 >> index.html
exit 0
Nic nie jest tak proste, jak się wydaje.
Danielle Steel

Offline lesio

  • Hero Member
  • *****
  • Wiadomości: 532
Odp: skrypty
« Odpowiedź #5 dnia: Lipiec 20, 2017, 12:32:52 am »
opcja "-e" dla polecenia echo włącza interpretację znaków "formatujących" podawanych po backslashu. Tak więc polecenie:
echo -e "ala\nola\niza"
utworzy trzy linie z tymi imionami.

Offline lesio

  • Hero Member
  • *****
  • Wiadomości: 532
Odp: skrypty
« Odpowiedź #6 dnia: Lipiec 20, 2017, 12:35:32 am »
warto wydać polecenie:
man echo
i na pierwszej stronie jest już wyjaśnione, że domyślnie aktywna jest opcja "-E", która wyłącza interpretację znaków formatujących.

Offline kade282

  • Newbie
  • *
  • Wiadomości: 14
Odp: skrypty
« Odpowiedź #7 dnia: Lipiec 27, 2017, 11:56:08 pm »
Bardzo dziękuję! :) tego właśnie szukałam. Pozdrawiam!