Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Shell Script funktioniert nicht

Frage Linux Suse

Mitglied: Gansterjo2

Gansterjo2 (Level 1) - Jetzt verbinden

06.09.2012 um 10:51 Uhr, 3980 Aufrufe, 14 Kommentare

Liebe Community

Wieder einmal habe ich ein Problem, diesmals gehts darum, dass ich ein Shell-Script (für einen Suse-Server) erstellen sollte, welches eine Logdatei erstellen sollte.

Die Shell-Datei sieht so aus:

01.
  #!/bin/ksh 
02.
  ((i=0)) 
03.
  while ((i<m)); do 
04.
  echo $i>>/var/log/ora.log      # do something 
05.
  ((i+=1)) 
06.
  done

Wie Ihr erkennen könnt, sollte die Datei eine Ausgabe der variablen I in die Datei ora.log erstellen.

jedoch kommt jedes mal die Fehlermeldung:

bash: ./shell_script.sh: /bin/ksh^M: bad interpreter: No such file or directory


Diese Datei hat die Berechtigungen 755 und ich bin als root angemeldet, so versuchte ich diese Datei auszuführen.



Freundliche Grüsse

Gansterjo2
Mitglied: 60730
06.09.2012 um 11:14 Uhr
Moin,

Von suse hab ich ja nicht so viel ahnung, aber joe gibts da sicherlich auch.
Welchen Texterzeuger hast du denn benutzt?
Bitte warten ..
Mitglied: SteinBeiser
06.09.2012 um 11:21 Uhr
^M am ende der zeile deutet auf falsche dateiformat in diesem fall dos es wird ab unix benötigt.
im editor kann man meistens das dateiformat auf unix umschalten.
Bitte warten ..
Mitglied: Gansterjo2
06.09.2012 um 11:32 Uhr
Zitat von 60730:
Moin,

Von suse hab ich ja nicht so viel ahnung, aber joe gibts da sicherlich auch.
Welchen Texterzeuger hast du denn benutzt?

Ich hab das mit dem Notepad geschrieben, als *.sh abgespeichert und via FTP auf den Server geladen
Bitte warten ..
Mitglied: Lochkartenstanzer
06.09.2012 um 11:39 Uhr
moin,

einfach die datei passend umformatieren. Unixoide bBetriebssyteme benötigen nur LF (^J) und kein CR(^M)/CRLF(^M^J) für das Zeilenende.

BTW: es wäre eine gute Idee m zu initialisieren.

lks
Bitte warten ..
Mitglied: Lochkartenstanzer
06.09.2012 um 11:40 Uhr
Zitat von Gansterjo2:
Ich hab das mit dem Notepad geschrieben, als *.sh abgespeichert und via FTP auf den Server geladen

Dann sollest Du bei textdateien den FTp-Client in den ASCII-Modus umschalten. Dann macht der solche Konvertierungen von selbst.

lks
Bitte warten ..
Mitglied: Lochkartenstanzer
06.09.2012 um 11:42 Uhr
Nachtrag:

Mit
which ksh 
kannst Du auch schauen, ob die betreffende Shell auch da ist, wo Du sie erwartest.

lks
Bitte warten ..
Mitglied: Gansterjo2
06.09.2012 um 11:43 Uhr
Hallo Zusammen

nun habe die oben geschriebene, Datei mit einem Vi-Editor, der sich auf dem Sles-Sever befindet geschrieben und wieder als *.sh-Datei abgespeichert.

Diese Datei hab ich auch dann ausgeführt, jedoch geschieht irgend wie nichts. Sprich die geplante Datei wird nicht ausgeführt.

Freundliche Grüsse

Gansterjo2
Bitte warten ..
Mitglied: 60730
06.09.2012 um 11:45 Uhr
Ot..
Was meint denn unser lochkartenstanzer mit dieser zeile?
Zitat von Lochkartenstanzer:
moin,

BTW: es wäre eine gute Idee m zu initialisieren.

lks
Bitte warten ..
Mitglied: Alchimedes
06.09.2012 um 11:52 Uhr
Hallo,

die Testbedingung in der Whileschleife ist falsch.

m ist nicht bekannt.

Um Fehler zu finden koenntest Du das Script mit sh -x ./Dein Script ausfuehren.


Gruss
Bitte warten ..
Mitglied: Lochkartenstanzer
06.09.2012 um 12:16 Uhr
Zitat von Gansterjo2:
Diese Datei hab ich auch dann ausgeführt, jedoch geschieht irgend wie nichts. Sprich die geplante Datei wird nicht
ausgeführt.

moin,

Schau mal hier. Da hatte ich dir schon einen Hinweis gegeben.

lks

PS: Timo hat Dich auch schon drarauf hingewiesen.
Bitte warten ..
Mitglied: Gansterjo2
06.09.2012, aktualisiert um 13:22 Uhr
Nochmals Hallo zusammen

Zuerst wollte ich mich bedanken, dass Ihr mir so viel Input gebt.


@Alchimedes stimmt du hast Recht... ich sollte die Variable m zuerst initialisieren...


Leider habe ich gerade Bemerkt, dass ich das Ganze nicht so codiert habe, wie ich es eigendlich haben wollte.

Das Ziel war, dass ich eine unbeendete Schleife erstelle.

Das Script würde in einer Batch von Windows so aussehen:

01.
@echo off 
02.
set /a x=1 
03.
:back 
04.
echo Wert %x% >>ora.log 
05.
set Z=%x%+1 
06.
set /a x=%z% 
07.
ping -n 3 localhost >NUL 
08.
goto back
nun weiss ich nicht ob man das Shell-Script iwie ummodellieren kann...

Vielen Dank

Freundliche Grüsse
Bitte warten ..
Mitglied: Alchimedes
06.09.2012, aktualisiert um 13:25 Uhr
Hallo,

was willst Du denn mit einer unbeendeten Schleife?

kenn mich mit dem Scripten in der Dosbox nicht so gut aus.. aber ist die nicht auch case-sensitive ?? weil Z=%x%+1 und dann x=%z% ??

was willst Du denn eigentlich mit dem Script auf dem Linuxserver erreichen?

Die Scriptschleife oben umgeschrieben etwa so:

#!/bin/ksh
x=0
while [ $x -lt 0 ] /* edit.. jenachdem wie oft du die schleife ausfuehren willst... hier wuerde Sie nur einmal ausgefuehrt.. */
do
echo $x >> ora.log
x=`expr $x +1`
done

Gruss
Bitte warten ..
Mitglied: Lochkartenstanzer
06.09.2012, aktualisiert um 13:25 Uhr
was ist an

while true ; do ...
so schwierig?

Villeicht einfach mal nach ksh googlen?

lks
Bitte warten ..
Mitglied: Gansterjo2
06.09.2012 um 13:55 Uhr
Hallo zusammen

Vielen Dank für die Unterstützung.


ich vermute, dass ich den Rest auch noch alleine hinkrieg...

Ich wünsche euch noch einen schönen Nachmittag

Freundliche Grüsse

Gansterjo2
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell Datei kopieren mit ACL Script funktioniert nicht (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Batch & Shell
Systemvariable funktioniert im Script nicht (4)

Frage von miczar zum Thema Batch & Shell ...

Linux
LTSP: PXE Boot funktioniert nicht (16)

Frage von Fenris14 zum Thema Linux ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...