Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: thai1 w 2017-04-17, 16:31:26

Tytuł: zapis zmiennej do pliku
Wiadomość wysłana przez: thai1 w 2017-04-17, 16:31:26
Jaka instrukcje napisac w bashu zeby zapisac string znajdujacy sie w  "zmienna1" do innego pliku ale zeby zapisywalo kazda litere w nowej lini?
Tytuł: Odp: zapis zmiennej do pliku
Wiadomość wysłana przez: 1709 w 2017-04-17, 18:48:56
Możesz mi napisać w jaki sposób ty szukasz w google poradników ?

Ja robie to przykładowo tak:
bash zmienne
bash zapisywanie do pliku

Nie obraź sie, ale robie to celowo, bo mam wrażenie że znając podstawy użytkowania wyszukiwarki poradzisz sobie sam.
Generalnie jestem zdania że korzystając tylko z wyszukiwarki i poradników można pisać odrazu skrypty  bez znajomości tego języka.
Najpierw skrypty będą dość rozbudowane, z czasem nauczysz się zasad i z poradników jak je upraszczać.
Nie neguję że obędzie się bez pomocy, bo sam nie raz z pomocy korzystalem, ale chciałem podkreślić że
- bash jest prostym językiem
- masz dużo poradników
- możesz użyć prymitywne GUI ( gtkdialog (http://xpt.sourceforge.net/techdocs/language/gtkdialog/gtkde02-GtkdialogExamples/single/) , jad (http://www.thelinuxrain.com/articles/multiple-item-data-entry-with-yad) , dialog (http://dief.republika.pl/dialog1.html) , zenity (https://www.howtogeek.com/107537/how-to-make-simple-graphical-shell-scripts-with-zenity-on-linux/) )
Zastrzeżeniem że
- Windows się do tego nie nadaje bo to generalnie na Linuxa jest stworzone. ( możesz używać Linuxa na virtualboxie )
- Większość poradników jest w języku angielskim, więc podstawy angielskiego znać też wypada, a reszte Ci pomoże google transaltor i wolontariusze.
 ( No chyba że wolisz płatne kursy, ja w to nie wnikam )

Nie wiem czemu Ci tak zależy na bash-u , ale jeśli jest to przyczyna czysto hobbystyczna i używasz tylko Windowsa to może zainteresuje Cię AutoIT (http://www.mpcforum.pl/topic/161158-tut-full-autoit-v3-tutorial/#entry1067545)
Z zastrzeżeniem że
- jest tylko na Windowsa
- i może na początku nie jest prosty, ale jak pojmiesz budowe większego skryptu, skąd bierzesz komendy i funkcje  oraz nauczysz się paru rzeczy to może stwierdzisz że jest to jeden z lepszych języków skryptowych na wspomnianą platforme. ( Myśle że jak ktoś by Ci pomógł to byś skrypty pisał już po 1 dniu nauki )
Oczywiście istnieją jezyki bardziej multiplatformowe które po których można znaleść pracę ( python, java, lua ) ale to też zależy od zastosowania,
lua jest używana ze względu na szybkość, python i java ze względu na zastosowanie bardziej internetowe.

PS: Jeśli Ci nie wychodzi to daj przykład jak to robisz, wtedy chętniej pomożemy, powiemy co było źle.
Tytuł: Odp: zapis zmiennej do pliku
Wiadomość wysłana przez: thai1 w 2017-04-17, 19:41:02
Dzieki za odpowiedz. Chodzi o to:
#!bin/bash
zmienna1="misz"
zmienna2="masz"
echo "$zmienna1" > ~/"$zmienna2.sh
Stworzylo plik o nazwie stringu ze zmiennej2 i wlało tam string ze zmiennej1
Nie moge wymyslec co zrobic aby string ze zmiennej1 zapisac w pliku od góry do dołu...czyli po kazdej literze wstawiajac znak nowej linii.
moze jakas operacja na tablicy?
Tytuł: Odp: zapis zmiennej do pliku
Wiadomość wysłana przez: 1709 w 2017-04-17, 20:50:44
1 . Mozesz użyć pętli

#!bin/bash

# zmienna
zmienna1="misz"


# Liczba znaków
aa=$(echo $[$(echo $zmienna1 | wc -m)-1])

# wc --help (powie wiecej)
# $[ ] (operacja matematyczna bo "misz" ma 4 znaki,a nie 5.




# petla for od od 1 do $aa
for i in `seq 1 $aa`
do

# wyswietlenie pierwszego znaku
ab=$(echo $zmienna1 | cut -c $i )


# zapisanie znaku do nowej zmiennej
ac=$( echo -e "${ac}\n${ab}"  )

done

# Wyswietlenie nowej zmiennej i usunięcie pustej lini, które tworzy echo.
 echo "$ac" | grep "\S"

2. Możesz jak ten gościu  http://stackoverflow.com/questions/9899049/placing-every-character-on-a-new-line
przykład w terninalu ( bez zapisywania do pliku )
$     zmienna_a=$(echo "misz" | sed 's/./&\n/g') ; echo "$zmienna_a"
m
i
s
z
Choć sed, awk do basha nie należą to się w bashu przydają.

3. Możesz   http://stackoverflow.com/questions/9531225/how-can-i-add-a-new-line-to-a-large-file-every-n-characters-in-terminal-one-lin
$       echo  "mania" | grep -oE '.{1}'
m
a
n
i
a
( tez bez zapisania do zmiennej czy pliku, jak chcesz do zmiennej to: zmienna=$(  ... ) )
Tytuł: Odp: zapis zmiennej do pliku
Wiadomość wysłana przez: thai1 w 2017-04-17, 21:10:46
Dzięki wielkie za pomoc !
Tytuł: Odp: zapis zmiennej do pliku
Wiadomość wysłana przez: 1709 w 2017-04-17, 21:11:32
PS:
- http://eti.pg.edu.pl/katedra-inteligentnych-systemow-interaktywnych/narzedzia
- http://blog.0x1fff.com/2009/12/manipulacja-tekstem-w-bashu.html
( Moze Ci sie przyda )