bash script?
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
bash script?
Jag håller på att göra ett bash script och jag undrar hur man skriver för att få scriptet att flytta/kopiera en fil från en mapp till en annan?
http://www.tinicorp.se/
- Rasmus
- Inlägg: 2291
- Blev medlem: 07 sep 2006, 18:33
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Svalsta
SV: bash script?
mv /från/mapp/ett /till/mapp/två <-flytta
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Jag skrev:Rasmus skrev: cp /från/mapp/ett /till/mapp/två <-kopiera, Läggtill flaggan -R för att flytta mappar.
mv /från/mapp/ett /till/mapp/två <-flytta
#!/bin/bash
mkdir /home/robin/scripts3
cp /home/robin/tinicorp/files/ /home/robin/scripts3/
exit
men den flyttar inte filerna från files mappen till min scripts3 mapp.
Vad skrev jag för fel?
Edit:
Hur gör jag så att scriptet känner av vad användarmappen heter?
Jag hade tänkt att lägga upp scriptet för dom som är intresserade av det.
Men då kna ju inte sökvägen vara text: /home/robin/tinicorp/.
Så hur gör jag så att scriptet känner av vad användaren heter?
http://www.tinicorp.se/
- maths57
- Inlägg: 2911
- Blev medlem: 22 jun 2007, 15:10
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
SV: bash script?
Kod: Markera allt
#!/bin/bash
mkdir /home/robin/script3
cp /home/robin/tinicorp/files/* /home/robin/scripts3
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Det fungerade galantmaths57 skrev: Det ser inte ut som om du kopierar några filer. Jag är inte så hemma på det här, men jag skulle försöka så här.Kod: Markera allt
#!/bin/bash mkdir /home/robin/script3 cp /home/robin/tinicorp/files/* /home/robin/scripts3

Är det någon som vet vad jag ska skriva för att sessions rutan ska komma upp via bash?
Hur gör man så att bash skapar samt skriver en till filen en gång?
Det jag tänkte är att slänga in följande som ni kan hitta på denna länk:
http://ubuntu-se.org/smf/index.php/topic,3694.0.html
så det blir automatiskt i mitt script.
Tanken är att jag ska slippa göra om allt dom gånger jag installerar om datorn eller installerar ubuntu åt någon polare.
Min start .sh fil länkar till dom andra .sh filarna och ser ut på detta sätt (ser ni några problem med den?):
Kod: Markera allt
#!/bin/bash
gedit ~/tinicorp/txt/start
~/tinicorp/scripts/files.sh
gedit ~/tinicorp/txt/host
sudo gedit /etc/hosts
gedit ~/tinicorp/txt/gstreamer
gstreamer-properties
~/tinicorp/scripts/remove.sh
~/tinicorp/scripts/install.sh
~/tinicorp/scripts/flash9.sh
~/tinicorp/scripts/java.sh
gedit ~/tinicorp/txt/sources
sudo gedit /etc/apt/sources.list
~/tinicorp/scripts/update.sh
gedit ~/tinicorp/txt/prelink
sudo gedit /etc/default/prelink
~/tinicorp/scripts/clean.sh
gedit ~/tinicorp/txt/end
~/tinicorp/scripts/reboot.sh
exit
http://www.tinicorp.se/
- maths57
- Inlägg: 2911
- Blev medlem: 22 jun 2007, 15:10
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
SV: bash script?
För att skriva till en fil använder du > tecknet. Så här
Kod: Markera allt
echo Hej, världen! > hej.txt
Kod: Markera allt
cat hej.txt
Kod: Markera allt
echo Hej, igen >> hej.txt
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Kan man inte göra så att ett script körs var 4h te.x?
Edit1: Kan man göra så att scriptet ändrar något på te.x 34 raden i ett .txt dokument?
Edit2:
Hur kör man "Språkstöds" update i terminalen?
När man kör sudo apt-get update/upgrade så är det ju för uppdateringar, men inte för språkstöd
http://www.tinicorp.se/
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
hmm den där fungerade inte så bra för mig =/maths57 skrev: Sessionsrutan är programmet gnome-session-properties, så du får ange det.
För att skriva till en fil använder du > tecknet. Så härTitta sedan i filen med följandeKod: Markera allt
echo Hej, världen! > hej.txt
Vill du lägga till mer i slutet på filen, då skriver du dubbla > tecken.Kod: Markera allt
cat hej.txt
Kod: Markera allt
echo Hej, igen >> hej.txt
Jag ska skriva följande till en ny fil, och dom där commandona fungerar inte för mig då :s
Kod: Markera allt
#!/bin/bash
#
# nautilus-mount-iso
gksudo -u root -k /bin/echo "got r00t?"
sudo mkdir /media/"$*"
if sudo mount -o loop -t iso9660 "$*" /media/"$*"
then
if zenity --question --title "ISO Mounter" --text "$* Successfully Mounted.
Open Volume?"
then
nautilus /media/"$*" --no-desktop
fi
exit 0
else
sudo rmdir /media/"$*"
zenity --error --title "ISO Mounter" --text "Cannot mount $*!"
exit 1
fi
http://www.tinicorp.se/
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
SV: bash script?
Byt ut alla /home/robin/ mot ~/ så blir det bra.Lulle skrev: Hur gör jag så att scriptet känner av vad användarmappen heter?
Jag hade tänkt att lägga upp scriptet för dom som är intresserade av det.
Men då kna ju inte sökvägen vara text: /home/robin/tinicorp/.
Så hur gör jag så att scriptet känner av vad användaren heter?
Tänk på att det där inte kopierar dålda filer som börjar med en punkt.Lulle skrev:Det fungerade galantmaths57 skrev: Det ser inte ut som om du kopierar några filer. Jag är inte så hemma på det här, men jag skulle försöka så här.Kod: Markera allt
#!/bin/bash mkdir /home/robin/script3 cp /home/robin/tinicorp/files/* /home/robin/scripts3
Tackar.
Ja, det kallas cronjob.Lulle skrev: Går det inte att göra så att bash scriptet lägger till nya sessioner som ska starta varje gång datorn startar?
Kan man inte göra så att ett script körs var 4h te.x?
T.ex...Lulle skrev: Edit1: Kan man göra så att scriptet ändrar något på te.x 34 raden i ett .txt dokument?
Kod: Markera allt
sed -i '34s/från/till/' fil.txt
Jag tror du vill använda något som kallas "here-document" ...Lulle skrev: Jag ska skriva följande till en ny fil, och dom där commandona fungerar inte för mig då :s
Kod: Markera allt
cat <<\EOF >ny_fil.txt
#!/bin/bash
#
# nautilus-mount-iso
gksudo -u root -k /bin/echo "got r00t?"
sudo mkdir /media/"$*"
if sudo mount -o loop -t iso9660 "$*" /media/"$*"
then
if zenity --question --title "ISO Mounter" --text "$* Successfully Mounted.
Open Volume?"
then
nautilus /media/"$*" --no-desktop
fi
exit 0
else
sudo rmdir /media/"$*"
zenity --error --title "ISO Mounter" --text "Cannot mount $*!"
exit 1
fi
EOF
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Fungerade klockrennt tackarByt ut alla /home/robin/ mot ~/ så blir det bra.

Kan du förklara hur cronjob fungerar?Ja, det kallas cronjob.
Har du lust att förklara lite mer hur detta fungerar?T.ex...Kod: Markera allt
sed -i '34s/från/till/' fil.txt
Fungerade klcokrent tackarJag tror du vill använda något som kallas "here-document" ...
Kod: Markera allt
cat <<\EOF >ny_fil.txt #!/bin/bash # # nautilus-mount-iso gksudo -u root -k /bin/echo "got r00t?" sudo mkdir /media/"$*" if sudo mount -o loop -t iso9660 "$*" /media/"$*" then if zenity --question --title "ISO Mounter" --text "$* Successfully Mounted. Open Volume?" then nautilus /media/"$*" --no-desktop fi exit 0 else sudo rmdir /media/"$*" zenity --error --title "ISO Mounter" --text "Cannot mount $*!" exit 1 fi EOF

http://www.tinicorp.se/
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
1. Ta bort en rad ur ett dokument/fil.
2. lägga till en rad i ett dokument/fil.
(Det är i source.list jag ska ta bort och ändra en rad.
Sedan ska jag göra lika i hosts filen.)
3. Lägga till något i sessioner via terminalen.
4. uppdatera "Språkstöd" och installera nya om det behövs via terminalen
http://www.tinicorp.se/
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
SV: bash script?
Jag antar att du vill veta hur du använder det och inte hur det fungerar.Lulle skrev: Kan du förklara hur cronjob fungerar?
Börja med att köra:
Kod: Markera allt
crontab -e
Kod: Markera allt
EDITOR=nano crontab -e
Kod: Markera allt
* * * * * /usr/local/bin/mitt_skript.sh
Så här blir det om du t.ex. vill köra skriptet 7 och 19 minuter över var
fjärde timme mellan den 3:e och 8:e februari:
Kod: Markera allt
7,19 */4 3-8 2 * /usr/local/bin/mitt_skript.sh
minut(0-59) timme(0-23) dag(1-31) månad(1-12) veckodag(0-6,0=söndag)
Lulle skrev:Har du lust att förklara lite mer hur detta fungerar?Kod: Markera allt
sed -i '34s/från/till/' fil.txt
Leta reda på en nybörjarguide om sed.Lulle skrev: Följande fattas i mitt script sedan postar jag det:
1. Ta bort en rad ur ett dokument/fil.
2. lägga till en rad i ett dokument/fil.
Du tar bort rad 12 med:
Kod: Markera allt
sed -i '12d' fil.txt
Kod: Markera allt
sed -i '12iNÅGOT' fil.txt
Kod: Markera allt
sed -i '12aNÅGOT' fil.txt
Kod: Markera allt
sed -i '12cNÅGOT' fil.txt
Kod: Markera allt
sed -i '12s/NÅGOT/NÅGOT ANNAT/' fil.txt
byter ut siffran mot ett $ så är det den sista raden. Det kan även skriva
t.ex. 5,9 för rad 5 till 9 eller 1~2 för alla udda rader.
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
1. Lägga till något i sessioner via terminalen.
2. uppdatera "Språkstöd" och installera nya om det behövs via terminalen
http://www.tinicorp.se/
- Rasmus
- Inlägg: 2291
- Blev medlem: 07 sep 2006, 18:33
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Svalsta
SV: bash script?
Lulle skrev: Har 2 till saker som jag behöver hjälp med och det är:
2. uppdatera "Språkstöd" och installera nya om det behövs via terminalen
Kod: Markera allt
sudo apt-get install language-pack-sv language-pack-sv-base language-pack-gnome-sv language-pack-gnome-sv-base language-support-sv
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Tackar!Rasmus skrev:Lulle skrev: Har 2 till saker som jag behöver hjälp med och det är:
2. uppdatera "Språkstöd" och installera nya om det behövs via terminalenByt ut 'language-pack-gnome-sv' och 'language-pack-gnome-sv-base' mot 'language-pack-kde-sv' och 'language-pack-kde-sv-base' om du kör kdeKod: Markera allt
sudo apt-get install language-pack-sv language-pack-sv-base language-pack-gnome-sv language-pack-gnome-sv-base language-support-sv
Men nu kommer en pinsam fråga....
Jag kör Ubuntu 7.10 jag antar att det är Gnome eller?
Edit:
Ingen som vet hur man lägger till saker i sessioner med terminalen?
http://www.tinicorp.se/
- Rasmus
- Inlägg: 2291
- Blev medlem: 07 sep 2006, 18:33
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Svalsta
SV: bash script?
Ubuntu = gnome, Kubuntu = kde, Xubuntu = xfceLulle skrev: Men nu kommer en pinsam fråga....
Jag kör Ubuntu 7.10 jag antar att det är Gnome eller?

Annars kan du ju kolla med:
Kod: Markera allt
echo $GDMSESSION
Såg nu att:
Kod: Markera allt
sudo apt-get install language-pack-$GDMSESSION-sv language-pack-$GDMSESSION-sv-base

Tyvärr inte, menar du så program "autostartas"?Lulle skrev: Ingen som vet hur man lägger till saker i sessioner med terminalen?
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
SV: bash script?
Tyvärr inte, menar du så program "autostartas"?Lulle skrev: Ingen som vet hur man lägger till saker i sessioner med terminalen?
[/quote]
Jupp menar så att ett program läggstill i autostart.
http://www.tinicorp.se/
- Rasmus
- Inlägg: 2291
- Blev medlem: 07 sep 2006, 18:33
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Svalsta
SV: bash script?
- Jag undrar hur man kan ta output från zenity --entry och sparar det i en varbal?(så jag senare kan nå det med $INPUT)
- Räkna med bash, går det? i python kunda jag skriva 5+5 för att få ut 10, jag kunde även skriva 'hej'*7 för att skriva hej 7
gånger. Hur gör man det i bash? - Vad var kommandot så man kan se vart i systemet man är?
- När man kör chmod på en fil blir man tvungen att skriva rättigheterna med siffror, fins det en bra manual/guide som tar upp alla möjliga rättigheter tex. -wx, -w- och --x?
-
- Inlägg: 2157
- Blev medlem: 25 okt 2007, 14:00
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Luleå
SV: bash script?
Ett skript för att räkna 5+5 kan se ut så härRasmus skrev: Jag lånar tråden lite.
- Jag undrar hur man kan ta output från zenity --entry och sparar det i en varbal?(så jag senare kan nå det med $INPUT)
- Räkna med bash, går det? i python kunda jag skriva 5+5 för att få ut 10, jag kunde även skriva 'hej'*7 för att skriva hej 7
gånger. Hur gör man det i bash?- Vad var kommandot så man kan se vart i systemet man är?
- När man kör chmod på en fil blir man tvungen att skriva rättigheterna med siffror, fins det en bra manual/guide som tar upp alla möjliga rättigheter tex. -wx, -w- och --x?
Kod: Markera allt
#!/bin/bash
let i=5+5
echo $i
Kod: Markera allt
#!/bin/bash
x=7
for i in `seq 1 $x`;
do
echo $x
done
Ang. chmod
x = 1
w = 2
r = 4
Dessa kan man nu kombinera hur man vill. Tex 777 ger alla rättigheter att läsa, köra och läsa en fil. 333 ger alla rättigheter att köra och skriva till en fil. 744 ger bara ägaren till filen rätt att göra allt och de andra bara läs rättigheter.
Hoppas det klarnade lite iaf.
- Rasmus
- Inlägg: 2291
- Blev medlem: 07 sep 2006, 18:33
- OS: Ubuntu
- Utgåva: 24.04 Noble Numbat LTS
- Ort: Svalsta
SV: bash script?
Tack.KiviE skrev: [mycket text]
Men for i in `seq 1 $x`; skriver på en ny rad, jag vill skriva dem på en rad, och vad jag förstog funkade den bara på siffror:
Kod: Markera allt
pajn@pajn-desktop:~$ x='hej'
pajn@pajn-desktop:~$ for i in `seq 1 $x`; do echo $x; done
seq: felaktigt flyttalsargument: hej
Försök med "seq --help" för mer information.
