Ich möchte einem bestimmten Ruby-Skript eine Datei als Parameter übergeben. Diese Datei enthält nur eine Nummer (ID).
Der Befehl zum Ausführen der Ruby-Skripte sieht in etwa so aus:
test export 123456 -o./path/to/export -x
Die Zahl 123456
stellt den Parameter dar, den ich per txt/dat-Datei von GitLab übergeben möchte.
Ich habe es versucht:
test export "$(< /home/file.dat)" -o./path/to/export -x
Und auch:
test export "`cat file.dat`" -o./path/to/export -x
Aber ich bekomme immer den gleichen Fehler:
cat: file.dat: No such file or directory
Der sehr interessante Punkt ist, dass, wenn ich cat
vor dem anderen Befehl laufe, der Inhalt der Datei da ist (also die Datei gefunden wird). Wenn ich es "verschachtelt" innerhalb des Ruby-Befehls ausführe, wird es nicht gefunden.
Irgendwelche Ideen, wie ich das lösen kann?
Vielen Dank
Lösung des Problems
Ich bin mir nicht sicher, ob Sie danach suchen, aber Sie könnten den Namen der Datei über die Befehlszeile übergeben und den Inhalt der Datei im Ruby-Skript lesen:
id = nil
# ARGV holds all the parameters passed to the script
File.readlines(ARGV[0]).each do |line|
id = line # id here will be set to the value contained in the file you passed a parameter
end
Keine Kommentare:
Kommentar veröffentlichen