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 >file
echo -n "" > filename
opróżni plik, jeśli istnieje, lub utworzy plik, jeśli nie ' t istnieje.