Ich führe ein Perl-Skript eines Drittanbieters aus, das so geschrieben ist, dass eine Ausgabedatei für das Ausgabe-Flag erforderlich ist -o
.
Leider scheint das Skript eine tatsächliche Datei zu erfordern, dh Benutzer müssen eine leere Datei filename.txt
mit 0 Bytes erstellen und diese leere Datei dann in die Skriptbefehlszeile eingeben
perl script1.pl -o filename.txt
Frage: Wie würde ich eine leere Datei in einem Bash-Skript erstellen? Wenn man es einfach versucht perl script1.pl -o filename.txt
, gibt das Skript einen Fehler aus, dass die Datei nicht existiert.
bash
shell-script
shell
files
ShanZhengYang
quelle
quelle
touch filename.txt
Antworten:
Verwenden
touch
Befehl.touch filename.txt
.quelle
echo -n >file
Verwenden Sie den null-Befehl (
:
) redirect (> filename
) trick (:>
), da dieser auf null abschneidet oder die benannte Datei erstellt.(Dies schlägt fehl, wenn die Shell die Option NOCLOBBER setzt.)
quelle
>|
zu clobber, so:>| filea
- dokumentiert im Handbuch> filename.txt
Würde einfach tun, keine Notwendigkeit für die:
. Oder>> filename.txt
wenn wir es nicht wegwerfen wollen, wenn es tatsächlich existiert.:
des Skripts die Wahrscheinlichkeit, dass es seine Aufgabe mit anderen Shells erledigt, z. B. Zsh.Sie können auch immer Perl verwenden.
quelle