ubuntuusers.de

#/!/bin/sh im sript über lesen damit es mit echo > kopiert werden kann

Status: Gelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

UndergroundPx

Anmeldungsdatum:
31. Oktober 2009

Beiträge: Zähle...

Hallo ihr lieben,

wie kann ich verhindern das #!/bin/bash IN MEINEM Script nicht ausgeführt wird sondern mit echo #!/bin/bash > ~/.vnc/xstartup kopiert wird.

Bisher öffnet sich immer eine neue Shell, wie kann ich das verhindern.

Ich habe es mit \ \\ [] () und '' mit cp und mv versucht, funktioniert bei MIR aber nicht. Das soll in eine Datei kopiert werden

echo #!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup{{{#!code echo #!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup

Danke für die Hilfe.

Lieben Gruß

Holger

Bearbeitet von Antiqua:

Syntax-Voodoo eingefügt

Keba Team-Icon

Ehemalige
Avatar von Keba

Anmeldungsdatum:
24. Juli 2007

Beiträge: 3802

Hallo,

Verwende bitte nächstes Mal die Vorschaufunktion und passe deinen Post entsprechend an, danke.

Da wird nichts ausgeführt, allerdings ist # ein Kommentarzeichen, alles danach wird ignoriert. Um das zu verhindern, kannst du einfache Anführungszeichen verwenden: echo '#!/bin/bash' > foo.

Grüße, Keba.

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

Keba schrieb:

Hallo,

Verwende bitte nächstes Mal die Vorschaufunktion und passe deinen Post entsprechend an, danke.

Da wird nichts ausgeführt, allerdings ist # ein Kommentarzeichen, alles danach wird ignoriert. Um das zu verhindern, kannst du einfache Anführungszeichen verwenden: echo '#!/bin/bash' > foo.

Grüße, Keba.

Danke für die schnelle Hilfe. Sorry das der Text so aussah, aber ich bin mit dem Codeblock nicht klargekommen.....also ich war noch dabei es zu verbessern.

Lieben Gruß Holger

UbLinTux

Anmeldungsdatum:
7. Dezember 2011

Beiträge: 122

UndergroundPx schrieb:

Danke für die schnelle Hilfe. Sorry das der Text so aussah, aber ich bin mit dem Codeblock nicht klargekommen.....also ich war noch dabei es zu verbessern.

Lieben Gruß Holger

Einfach den Code markieren und dann das Zahnradsymbol klicken.

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

UndergroundPx schrieb:

Sorry das der Text so aussah, aber ich bin mit dem Codeblock nicht klargekommen.....also ich war noch dabei es zu verbessern.

Sorry fürs folgende Off-Topic:
Das Problem waren die '' (zwei Hochkomma). Die leiten Kursivschrift ein und warten auf erneute '' die den kursiven Block beenden. Du musst die im Fleißtext, wenn also kein kursiver Text erwünscht ist, entweder mit einem \ Maskieren, also so \'' oder in ` (die umschließen einen Monotype-Block) einschießen, also so `''`. Dann gehts auch mit dem Code-Block ☺

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

Antiqua schrieb:

UndergroundPx schrieb:

Sorry das der Text so aussah, aber ich bin mit dem Codeblock nicht klargekommen.....also ich war noch dabei es zu verbessern.

Sorry fürs folgende Off-Topic:
Das Problem waren die '' (zwei Hochkomma). Die leiten Kursivschrift ein und warten auf erneute '' die den kursiven Block beenden. Du musst die im Fleißtext, wenn also kein kursiver Text erwünscht ist, entweder mit einem \ Maskieren, also so \'' oder in ` (die umschließen einen Monotype-Block) einschießen, also so `''`. Dann gehts auch mit dem Code-Block ☺

Antiqua schrieb:

UndergroundPx schrieb:

Sorry das der Text so aussah, aber ich bin mit dem Codeblock nicht klargekommen.....also ich war noch dabei es zu verbessern.

Sorry fürs folgende Off-Topic:
Das Problem waren die '' (zwei Hochkomma). Die leiten Kursivschrift ein und warten auf erneute '' die den kursiven Block beenden. Du musst die im Fleißtext, wenn also kein kursiver Text erwünscht ist, entweder mit einem \ Maskieren, also so \'' oder in ` (die umschließen einen Monotype-Block) einschießen, also so `''`. Dann gehts auch mit dem Code-Block ☺

Danke 🙄

Das klappt jetzt, ABER

echo #!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup{{{#!code echo #!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup

kopiert sich immer noch nicht in die xstartup

Habt ihr vielleicht noch einen Tipp für mich? Bittöö, Bittöö

Danke! Lieben Gruß Holger

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Sorry, ich kapiere immer noch nicht, was Du überhaupt willst.
Mir fehlt überhaupt schon der Zusammenhang, wofür das gut sein soll.

Wieso sollte sich das Ding in eine andere Datei hinein kopieren ? - und überhaupt, woher weiß das Skript, an welche Stelle in der Zieldatei es was schreiben soll oder darf ? (oder wird da nur was an die Zieldatei angehangen ??)

Da müsstest Du mich doch erstmal etwas aufklären, bevor ich etwas sinnvolles dazu sagen kann.
(auf meinem Lucid gibt es nämlich überhaupt keine ~/.vnc/xstartup !)

track

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

track schrieb:

Sorry, ich kapiere immer noch nicht, was Du überhaupt willst.
Mir fehlt überhaupt schon der Zusammenhang, wofür das gut sein soll.

Wieso sollte sich das Ding in eine andere Datei hinein kopieren ? - und überhaupt, woher weiß das Skript, an welche Stelle in der Zieldatei es was schreiben soll oder darf ? (oder wird da nur was an die Zieldatei angehangen ??)

Da müsstest Du mich doch erstmal etwas aufklären, bevor ich etwas sinnvolles dazu sagen kann.
(auf meinem Lucid gibt es nämlich überhaupt keine ~/.vnc/xstartup !)

track

Guten Morgen,

ich habe mir ein Installations Script geschrieben was mir alles installieren soll was ich auf einem System brauche und was gemacht werden soll z.B update, upgrade, openssh mit rsa, apache2, mysql-server, phpmydamin, und vnc etc. Immoment muss ich nur noch die VNC conifg xstartup nach ~/.vnc/xstartup kopieren.

VNC Abschnitt aus dem script

USER=MeinUser

echo "Vnc4server Installtion"

apt-get -y install vnc4server

touch vncfirst
chown $user:$user vncfirst
chmod u+x vncfirst


 echo 
  vncpasswd
  vncserver :1
  sleep 15
  vnserver -kill :1 > ~/vncfirst

sudo -u $USER  ~/vncfirst

######### Bis hierhin geht alles gut, der Server läuft für 15 Sekunden und wir danach wieder gestoppt.Nachdem ersten Start hat VNC die xstartup angelegt die jetzt ersetzt werden soll #########################

echo  
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup


touch  vncserverstart
chmod u+x vncserverstart
chown $USER:$USER vncserverstart

   echo 'vncserver :1' > ~/vncserverstart

sudo -u $USER ~/vncserverstart

Anstatt den Text zu verschieben öffnet sich eine neue Shell, die geöffnete Shell zeigt mir pötzlich Gnome Einstellungen an dich nicht verstehe und auch nicht haben möchte.

Ich hoffe mal das ich dir mein Anliegen besser beschreiben konnte.

Lieben Gruß

Holger

jakon Team-Icon

Lokalisierungsteam

Anmeldungsdatum:
16. November 2009

Beiträge: 419

Wie soll die Bash denn auch wissen, dass du jetzt mehrere Zeilen Text in die Datei schreiben willst?! Es ist doch logisch, dass

  1. alles nach einer Raute ignoriert wird, wie es dir Keba längst gesagt hat, und dass

  2. dieses xstartup-Skript direkt ausgeführt wird, und da nix kopiert wird.

Und wenn du dir das Posting von Keba anschaust, sollte dir hoffentlich die Erleuchtung kommen …

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

jakon schrieb:

Wie soll die Bash denn auch wissen, dass du jetzt mehrere Zeilen Text in die Datei schreiben willst?! Es ist doch logisch, dass

  1. alles nach einer Raute ignoriert wird, wie es dir Keba längst gesagt hat, und dass

  2. dieses xstartup-Skript direkt ausgeführt wird, und da nix kopiert wird.

Und wenn du dir das Posting von Keba anschaust, sollte dir hoffentlich die Erleuchtung kommen …

Hallo,

wenn du mein Post richtig gelesen hast steht da was ich alles schon selbst versucht habe. Nochmal ich habe es mit

''

und

() [] (())

und sorgar mit

""

versucht. Klappt nicht weil das ganze Script nicht eingefasst wird sondern nur das erste # Kommentarzeihen.

Und ich habe nochmal das probiert was mir Keba gepostet hat,dass geht aber auch nicht. Warum nicht? Weil nur das erste '# Zeichen auskommentiert wurde und nicht der ganze Text. Mein Frage ist immer noch wie bekommen ich den ganzen oben aufgezeigten Scirpt Text in die .vnc/xstartup. Muss ich den Scriptabschnitt noch klammern z.B

'(( #!/bin/bash  Script ))'

oder so einfassen...

'[ mein Script]'

damit das ganze Script kopiert wird?

Lieben Gruß

Holger

jakon Team-Icon

Lokalisierungsteam

Anmeldungsdatum:
16. November 2009

Beiträge: 419

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/dash
echo '#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session' # ich verzichte jetzt auf verschieben in ~/.vnc

Ausgabe:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session

Ich weiß zwar nicht, wie du auf die Idee mit den Klammern gekommen bist, allerdings ist es auf jeden Fall falsch.

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

UndergroundPx schrieb:

UndergroundPx schrieb:

jakon schrieb:

Wie soll die Bash denn auch wissen, dass du jetzt mehrere Zeilen Text in die Datei schreiben willst?! Es ist doch logisch, dass

  1. alles nach einer Raute ignoriert wird, wie es dir Keba längst gesagt hat, und dass

  2. dieses xstartup-Skript direkt ausgeführt wird, und da nix kopiert wird.

Und wenn du dir das Posting von Keba anschaust, sollte dir hoffentlich die Erleuchtung kommen …

Hallo,

wenn du mein Post richtig gelesen hast steht da was ich alles schon selbst versucht habe. Nochmal ich habe es mit

''

und

() [] (())

und sorgar mit

""

versucht. Klappt nicht weil das ganze Script nicht eingefasst wird sondern nur das erste # Kommentarzeihen.

Und ich habe nochmal das probiert was mir Keba gepostet hat,dass geht aber auch nicht. Warum nicht? Weil nur das erste '# Zeichen auskommentiert wurde und nicht der ganze Text. Mein Frage ist immer noch wie bekommen ich den ganzen oben aufgezeigten Scirpt Text in die .vnc/xstartup. Muss ich den Scriptabschnitt noch klammern z.B

'(( #!/bin/bash  Script ))'

oder so einfassen...

'[ mein Script]'

damit das ganze Script kopiert wird?

Lieben Gruß

Holger

Hallo,

ich bin schon ein bisschen weiter gekommen. zurzeit weiß ich das ich folgende Vorzeichen nehmen kann

"" `` und \

die jeder für sich Sonderezeichen oder Wildcarts oder Metazeichen aufheben. Wie ich den ganzen Script Text damit einfassen kann weiß ich immer noch nicht. Vielleicht geht das auch gar nicht, und ich muss alles einzeln auskommentieren.

Lieben Gruß

Holger

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

Das geht mit cat und einem sog. Here-Document.

Sieh dir folgendes Script mal an:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# alles nach 'EOF' und vor EOF wird in
# die Datei neuerfile.txt geschrieben

(
cat <<'EOF'
#!/bin/bash

# tuedelue
echo "Hallo, ich bins, $0"
# 
echo "heute ist $(date)"
EOF
) > neuerfile.txt

# neuerfile.txt wird ausführbar gemacht
chmod +x neuerfile.txt

# neuerfile.txt wir ausgeführt
./neuerfile.txt

Da wird bei Ausführen dieses Scriptes alles zwischen den EOF (also Zeile 8 bis 13) in die Datei neuerfile.txt geschrieben, danach wird neuerfile.txt ausführbar gemacht (Zeile 18) und dann ausgeführt (Zeile 21).


Eine Bitte hätte ich noch: Deine Vollzitate der anderen Postings macht alles sehr schwer lebar, Zitiere doch nur das, worauf du dich beziehst

LG:
Antiqua

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

UndergroundPx schrieb:

...
######### Bis hierhin geht alles gut, der Server läuft für 15 Sekunden und wir danach wieder gestoppt.Nachdem ersten Start hat VNC die xstartup angelegt die jetzt ersetzt werden soll #########################

echo  
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
....

So langsam ahne ich, was Du willst !
Du möchtest mit dem 2. Teil des Skripts die Datei ~/.vnc/xstartup überschreiben ...

Die eleganteste Lösung wäre der Vorschlag von Antiqua, mit einem Here-Dokument:

....
######### Bis hierhin geht alles gut, der Server läuft für 15 Sekunden und wir danach wieder gestoppt.Nachdem ersten Start hat VNC die xstartup angelegt die jetzt ersetzt werden soll #########################

cat  << EOF  >  ~/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup


touch  vncserverstart
chmod u+x vncserverstart
chown $USER:$USER vncserverstart

   echo 'vncserver :1' > ~/vncserverstart

sudo -u $USER ~/vncserverstart
EOF

Dann brauchst Du Dich um das "quoten" nicht weiter zu kümmern. Oder Du korrigierst die Gänsefüßchen in der Zeile:

   echo "vncserver :1" > ~/vncserverstart

damit keine gemischten Gänsefüßchen mehr vorkommen. Dann geht es auch mit echo:

....
######### Bis hierhin geht alles gut, der Server läuft für 15 Sekunden und wir danach wieder gestoppt.Nachdem ersten Start hat VNC die xstartup angelegt die jetzt ersetzt werden soll #########################

echo '#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# /usr/share/gnome-session --session=ubuntu.session
xsetroot -solid grey
#vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
#gnome-classic.session
gnome-session --session=ubuntu &
#ubuntu-2d.session > ~/.vnc/xstartup


touch  vncserverstart
chmod u+x vncserverstart
chown $USER:$USER vncserverstart

   echo 'vncserver :1' > ~/vncserverstart

sudo -u $USER ~/vncserverstart'  >  ~/.vnc/xstartup

track

UndergroundPx

(Themenstarter)

Anmeldungsdatum:
31. Oktober 2009

Beiträge: 51

Hi,

ich habe es geschafft, mir eurer hilfe.

Bedanke mich vielmals für eure hilfe.

Auf bald. Lieben Gruß

Holger

Antworten |