Eigener Dateinamen

F

Fr34k_

Jungspund
Hey, kann mir jemand sagen, wie ich den Dateinamen der ausführbaren Datei bekomme?

Ich erstell immer ein .csv File, welches den Namen der Datei haben sollte (Version). Es sollte nicht die neuste Version (Sortieren) sondern eben die Version sein, welche ich auch ausführe.

Hoffe jemand kann mir helfen ;)

Lg
 
Bestimmt, aber du müsstest dein Problem verständlich aufschreiben, so kann dir nur jemand mit hellseherischen Fähigkeiten schreiben.
Versuch es mal in Einzel-Schritten und mit konkreten Beispieldateinamen aufzuschreiben, gehe dabei davon aus, dass wir überhaupt keine Ahnung haben was du vorhast (so ist es nämlich).

Wenn du dir für deine Frage 10 Minuten statt einer nimmst, dann musst du nicht 20 Minuten warten bis dir jemand sagt, dass man dir so gar nicht helfen kann.
 
Zuletzt bearbeitet:
Also ;)
Ich habe eine Datei test.sh

die Datei test.sh soll eine .csv Datei mit dem Namen test.csv erstellen

Wenn ich den Dateinamen des Bash-Scriptes ändere (zbs. in test567.sh) soll der Name des .csv Files automatisch auch test567.csv heissen.

Daher, wenn ich die Datei ausführe, soll einfach ein CSV File erstellt werden, mit dem Namen der Datei.

Hoffe ist nun klar ;)

Lg
 
Code:
#!/bin/bash

dateiname=$(basename $0 .sh).csv

echo $dateiname

hth
 
Hallo Fr34k_,

ja, das war eine fast perfekte Beschreibung. Immer dazu sagen sollte man bei Shell-Skripten was du für ein System und Shell hast. Also z.B. Ubuntu Linux 10.04 und Bash. (Bash stand allerdings schon mit drin) Denn da gibt es manchmal Unterschiede zwischen den Systemen. Wie du gesehen hast, hat marcellus auch gleich eine Antwort rausgehauen, bevor ich die Gelegenheit hatte :-) Er hat dabei allerdings die Anführungszeichen vergessen :-)

Code:
#!/bin/bash

dateiname="$(basename $0 .sh).csv"

echo "$dateiname"
Sollte auch mit Leerzeichen im Dateinamen funktionieren.
Zur Info $0 enthält den Namen des aufgerufenen Programms. basename gibt immer den Namen des Programms aus, dass man im gibt und entfernt ggf. die Pfadangaben.

Beispiel:
Code:
basename /bin/bash
bash
 
Hi Fr34k_,

saeckereier hat definitiv recht: Quoting in der Shell kommt immer gut; würde allerdings empfehlen, statt
Code:
dateiname="$(basename $0 .sh).csv"
lieber
Code:
dateiname=$(basename "$0" .sh).csv
zu schreiben:
- bei der Kommando-Auswertung mit $( ... ) fasst die bash die Ergebnisse sowieso zu einem String zusammen,
- wenn der Name deines Skripts aber Leerzeichen enthält, führt die erste Schreibweise wahrscheinlich zu einem Fehler in 'basename' (zu viele Argumente).

Gruss, A.
 
Oh ja, da hat floyd natürlich Recht. Sorry :-)
 
Danke vielmals für die Hilfe ;)
Hat perfekt funktioniert :)

Lg
 

Ähnliche Themen

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

batch script funktioniert nicht ...brauche hilfe

solved Problem mit smtp (postfix) als send-only mta hinter NAT

PATH wird nicht richtig durchsucht

Samba Active Directory SUBDOMAIN

Zurück
Oben