ubuntuusers.de

C++ shortcuts scripten

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Dazu müsstest du etwas lernen. Shell hat ein paar nette Basics gelistet und aus den fertigen Scripten unter Skripte kann man auch recht viel lernen.

ein

if(Bedingung)
{
  Mach was;
}
else
{
  Mach was anderes;
} 

würde so aussehen:

if Bedingung; then
    Mach was
else
    Mach was anderes
fi


is doch garnicht so schwer oder?

Andre_Neujahr

(Themenstarter)

Anmeldungsdatum:
21. März 2008

Beiträge: 99

Wohnort: Nordsehl

hehe...nein, aber das kann ich doch schon lange....aber ich brauche eine datei, die ich schreiben will, die man dann in der shell ausführt, also, dopple-klick und dann wird es schon ausgeführt..... aber wie?! das is die frage! und sind die c++ codes bei Linux anders?

Danke!
Mfg André N.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Andre Neujahr hat geschrieben:

nagut, dann schreibe ich also einen quellcode (#include <iostream> using namespace std; int main(){cout << "hallo" << endl; } ) und kompilere den in der konsole als .sh datei

Hier wird es abenteuerlich.
Wenn es ein Merkmal von Scriptsprachen gibt, dann, daß sie nicht kompiliert werden.

Script war als Alternative vorgeschlagen worden - entweder oder - nicht inklusives oder: c++-Script - letzteres gibt es nicht (vielleicht experimentell als abseitiges Proof of concept).
Andre Neujahr hat geschrieben:

und dann kann ich sie über die shell ausführen lassen oder wie sehe ich das?

So eben nicht.
Andre Neujahr hat geschrieben:

wenn ja...dann wird es doch irgentwie in der welt möglich sein, für mich durch eure hilfe, einen shell script zu schreiben, womit ich, wie oben in meinen win quellcode, ein prgramm nur mit einer zahl öffnen kann, oder nicht?!

Das ist sowohl mit einem Script, als auch mit C++ möglich. (Nur nicht beides auf einmal.)
Andre Neujahr hat geschrieben:

bitte erklärt mir doch einmal jemand wie ich das machen muss! Ich weiß einfach nicht, was ihr von mir wollt...ICH möchte doch nur einen shell script schreiben, womit ich ein prgramm ausführen kann!

So könnte das Skript aussehen:

#!/bin/bash

function ewigeWahl 
{
	echo "1: ls, 0:exit"

	read befehl

	case $befehl in
		0)
			exit
			;;
		1)
			ls *cc
			;;
		*)
			echo "unbekanner Befehl"
			;;
	esac
}	

while true
do
	ewigeWahl
done


Als Befehl nehme ich ls *cc, weil ich Dein Programm nicht habe.
CLS gilt unter unix/linux als schlechter Stil, weil man nicht weiß, was für interessante Informationen der User auf dem Schirm hat, und wieviele Stunden er benötigt hat, sie dahinzubekommen. Man löscht sie ihm daher nicht weg.
Will er sie löschen, so kann er das mit clear selbst machen.
Dosshells hatten nie die Fähigkeit zurückzuscrollen, erst mit Windows kam das, aber hat dort nie Freunde gefunden.

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Andre Neujahr hat geschrieben:

hehe...nein, aber das kann ich doch schon lange....aber ich brauche eine datei, die ich schreiben will, die man dann in der shell ausführt, also, dopple-klick und dann wird es schon ausgeführt..... aber wie?! das is die frage! und sind die c++ codes bei Linux anders?

Die nötigen Funktionen wurden Dir bereits genannt. Du erstellst einen neuen Prozess mit Hilfe des fork-Aufrufs. Dann startest Du im Kindprozess z. B. mit execl das Programm, das Du ausführen möchtest. Im Elternprozess wartest Du mit dem waitpid-Aufruf darauf, dass sich der Kindprozess beendet. Und wenn Dir das zu kompliziert ist, dann solltest Du Dich eher an Shellscripte halten.

Andre_Neujahr

(Themenstarter)

Anmeldungsdatum:
21. März 2008

Beiträge: 99

Wohnort: Nordsehl

ja also das ist mir doch ein wenig zu sehr kompliziert! ich denke mal, ich schreibe erstenmal weiterhin .exe dateien, bis ich das mit Linux sachen da...... raus habe.

Danke dennoch für die hilfe!

Mfg André N.

P.S: Ich müsste dann nur nochma ne gute quelle für shell scripts und begründen haben. Danke!

lilith2k3

Avatar von lilith2k3

Anmeldungsdatum:
14. Dezember 2006

Beiträge: 2999

Wohnort: OS

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Andre Neujahr hat geschrieben:

ja also das ist mir doch ein wenig zu sehr kompliziert! ich denke mal, ich schreibe erstenmal weiterhin .exe dateien, bis ich das mit Linux sachen da...... raus habe.

Was ist daran bitte kompliziert?
Sieh Dir mal Dein Eingangsposting an - dies hier ist genauso einfach.
Hier mit Kommentar

#!/bin/bash

function ewigeWahl 
{
    # echo schreibt die Möglichkeiten auf die Konsole:
	echo "1: ls, 0:exit"

    # 'befehl' wird - wenn der User keinen Unfug macht, zu 0 oder 1
	read befehl

    # case ist eine Art Switch-Statement. 
    # die schließende Klammer zu case ist esac - case rückwärts. Wie if und fi.
    # lies: switch (befehl)
	case $befehl in
      # case 0 
		0)
         # exit beendet das Programm
			exit
         # ;; entspricht dem 'break' im C++-Switch
			;;
		1)
         # Gab der User 1 ein, so starten wir das Programm ls mit dem Parameter *cc, wie angekündigt
			ls *cc
			;;
      # default - der Stern/Asterix fängt alle sonstigen Antworten ab. 
		*)
			echo "unbekanner Befehl"
			;;
	esac
}	

# Eine Endlosschleife, aus der mit 0 aber doch ausgebrochen wird.
while true
do
   # ewigeWahl ist der Name der Funktion oben
	ewigeWahl
done


Gemessen an C++ ist es natürlich schwierig, wenn man c++ schon kennt, aber bash noch nicht.
Aber es ist wiederum leicht weil man keinen Compiler installieren muß und build-essentials und all das Zeug.

Schumbi

Avatar von Schumbi

Anmeldungsdatum:
10. Februar 2007

Beiträge: 49

Wohnort: Rostock

Es nützt jedoch nicht viel, wenn nicht direkt klar ist, was er/sie eigentlich will.
Ich rätsle immer noch fleißig, ob sie/er jetzt mittels wine auf steam und Co. zugreifen will, oder ob er/sie versucht auf die Windows Partition zu gelangen und die Programme von dort aufzurufen. Für letzteres sollte sie/er die Partition erstmal einbinden(Siehe mount) und muss dann aber immer noch wine oder so installieren damit es läuft. Wie es sich verhält, wenn er/sie Ubuntu unter Windows installiert hat(über Wubi) weiß ich nicht. Und so lange diese Fragen nicht geklärt sind, bringt es nicht viel ihr/ihm die Shell näherzubringen.

Ich glaube im übrigen auch nicht, dass Eure Expertendiskussion ihm/ihr irgendwie hilft. 😉
lG
Schumbi

Andre_Neujahr

(Themenstarter)

Anmeldungsdatum:
21. März 2008

Beiträge: 99

Wohnort: Nordsehl

das stimmt Schumbi, damit kann ich echt nicht viel anfangen. Was ich möchte ist, mittels eines scriptes auf die linux programme zugreifen können wie z.B. pidgin, ubuntu twaek, open office usw. Ich werde mir den link mal anschauen und dann werde ich mal sehen. Danke für eure .....hilfe.

Mfg André N.

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

Andre Neujahr hat geschrieben:

P.S: Ich müsste dann nur nochma ne gute quelle für shell scripts und begründen haben. Danke!

Lies dir meinen ersten Post nochmal durch, dort habe ich schon ein gutes Tutorial genannt.

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

e1bart0 hat geschrieben:

Lies dir meinen ersten Post nochmal durch, dort habe ich schon ein gutes Tutorial genannt.

Hey supper sowas hab ich schon immer gesucht.

Echtor2oo3

Avatar von Echtor2oo3

Anmeldungsdatum:
5. Mai 2006

Beiträge: 184

Wohnort: Papenburg

Wo wir gerade dabei sind, ich hatte auch mal versucht bzw sehr lange noch einer Lösung für eine "Link" exe gesucht für Windows.

Das problem war bei jeder Lösung das eine Konsole aufpoppte..
In der exe soll ein Prog mit Argumenten gestartet werden ala:

set PATH=/bla/blup
foo.exe -d -r -c /eigene dateien/muh.cfg

Man könnte auch eine *.bat machen, aber das Konsolenfenster würde stören. Es ist für eine nicht so bewanderte Community, deswegen würde es denk ich nicht ankommen 🙄

Hat da jemand vllt ne Lösung für?

nschmid

Anmeldungsdatum:
26. Juni 2006

Beiträge: 44

Wohnort: Zürich

Echtor2oo3 hat geschrieben:

Hat da jemand vllt ne Lösung für?

Einfach eine Verknuefung erstellen, in die Eigenschaften wechseln und als Ziel sowas eingeben:

"C:\pfad\prog.exe" arg1 arg2

LG
Nathan

Antworten |