PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash auf VM über HOST aufrufen



Spukky
12.10.20, 08:42
Hey Leude,

Bin ganz neu in der Thematik "Linux" und "VM".

Ich möchte eigentlich nur Anführungszeichen vor/hinter jede Zeile schreiben, da ich keine Option unter Windows gefunden habe dies auszuführen,
kam ich auf die gloreiche Idee das über eine VM und Linux zu handhaben.

Habe mir auf WIN 10 eine VM über Virtual Box erstellt, dort eine bash geschrieben und möchte diese nun über eine batch Datei vom Host (WIN10) ausführen.

Batch Datei:
--------------------------------------------------------------------------------------------
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Linux"
timeout /T 20 /NOBREAK
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol "Linux" run --exe "/media/sf_Tausch/Test.sh" --username XXX --password XXX
--------------------------------------------------------------------------------------------
(Startet VM und führt Bash aus)


Soweit passt alles, die VM startet und findet die bash Datei, jedoch erkennt sed die .txt nicht. (Manuell klappt alles)


Das steht in der bash Datei:
----------------------------------------------

sed -i -e 's/ //g' NetworkDevices.txt
sed -i -e 's/^\(.\)/"\1/' NetworkDevices.txt
sed -i -e 's/$/"/g' NetworkDevices.txt

----------------------------------------------
Fehlermeldung (3x):

sed: can't read NetworkDevices.txt: No such file or directory


Die Bash datei soll im eigentlich nur an den Anfang und am Ende jeder Zeile " einfügen.

(Falls ihr sed Profis seid könnt ihr gerne auch Lösungen oder Verbesserungen (am besten mit Erklärung) vorschlagen.)

Habt ihr irgendwelche Ideen woran das liegt und wie man das Problem beheben kann ?
Oder ob sich das Problem mit z.B. perl von selbst erledigt ?

Spukky

Spukky
12.10.20, 09:32
Problem erledigt.

sed hat die Datei nicht gefunden, habe das Verzeichnis angegeben dann hat es geklappt.
Habe mich nur gewundert dass das Manuell (auf Linux) ging.
Habe einfach vor den sed befehl ls -al geschrieben und dort dann gesehen wo er sich aufhält.

Spukky

marce
12.10.20, 11:02
... wohl ein Beispiel aus der Abteilung "Mit Artillerie-Batallion auf Spatzen geschossen"

ein flottes Google meint
* PowerShell kann's
* CygWin wäre auch 'ne Möglichkeit
* GnuWin32

... und selbst mit der klassischen CMD.exe sollte sich das hinbekommen lassen.

Spukky
12.10.20, 12:08
Jein habe mir zuerst die Linux Befehle auf mein Windows geholt, dabei haben dann aber die Anführungszeichen gesponnen.
Danach die VM aufgezogen.
Habe allgemein keine Erfahrungen mit Batch und Bash Dateien war/bin auch etwas überfordert.
Die sed Befehle hab ich mir auch nur Zusammenkopiert und minimal geändert.
Aber trotzdem Danke für die flotte Google suche ... werde ich mal durchfliegen. :)