GOOGLE ADS

Samstag, 16. April 2022

Datei als Parameter-Shell - Ruby

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 123456stellt 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 catvor 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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...