Uruchamiam skrypt Perla innej firmy napisany w taki sposób, że wymaga pliku wyjściowego dla flagi wyjściowej, -o.
Niestety, wydaje się, że skrypt wymaga rzeczywistego pliku, to znaczy użytkownicy muszą utworzyć pusty plik filename.txt z 0 bajtami, a następnie wprowadzić to pusty plik w wierszu poleceń skryptu
perl script1.pl -o filename.txt
Pytanie: Jak utworzyć pusty plik w skrypcie basha? Jeśli po prostu spróbuje się perl script1.pl -o filename.txt, skrypt wyświetla błąd informujący, że plik nie istnieje.
Komentarze
-
touch filename.txt - Możliwy duplikat Jak utworzyć prosty plik .txt (tekst) za pomocą terminala?
- zobacz także Dlaczego nie ' nie ma żadnego polecenia powłoki do tworzenia plików?
Odpowiedź
Użyj touch comm i. touch filename.txt.
Komentarze
Odpowiedź
Użyj pustego polecenia (:) przekierowanie (> filename) trick (:>), ponieważ spowoduje to obcięcie do zera lub utworzenie nazwanego pliku.
$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea
(Nie powiedzie się, jeśli powłoka ustawi opcję NOCLOBBER.)
Komentarze
- Jeśli ustawiono noclobber, użyj przekierowania
>|, aby clobber, więc:>| filea– udokumentowane w instrukcji - Wystarczy
> filename.txt, nie ma potrzeby stosowania:. Lub>> filename.txt, jeśli ' nie chcemy go wyrzucić, jeśli tak się stanie. - @ilkkachu chociaż pytanie określa Bash, użycie
:sprawia, że skrypt z większym prawdopodobieństwem wykona swoje zadanie z innymi powłokami, np. Zsh.
Odpowiedź
Zawsze możesz też użyć perla.
$ stat filename.txt stat: cannot stat "filename.txt": No such file or directory $ perl -e "open($fh,">","filename.txt") or die $!;close($fh)" $ stat filename.txt File: "filename.txt" Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 280728 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ xieerqi) Gid: ( 1000/ xieerqi) Access: 2017-02-08 13:51:01.479121995 -0700 Modify: 2017-02-08 13:51:01.479121995 -0700 Change: 2017-02-08 13:51:01.479121995 -0700 Birth: -
Odpowiedź
Najkrótsza droga:
>filename
Komentarze
- Najlepsza odpowiedź. Nie może być ' krótszy.
echo -n >fileecho -n "" > filenameopróżni plik, jeśli istnieje, lub utworzy plik, jeśli nie ' t istnieje.