Jak utworzyć nowy pusty plik w skrypcie bash?

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

Odpowiedź

Użyj touch comm i. touch filename.txt.

Komentarze

  • echo -n >file
  • uważaj – to nie opróżni twojego pliku, jeśli już istnieje
  • Właściwie próbowałem dotknąć i " echo -n > plik " wewnątrz mojego skryptu bash, ale pojawia się błąd, gdy wykonuję skrypt: " Nie ma takiego pliku lub katalog " w tym wierszu. Czy ktoś może pomóc?
  • echo -n "" > filename opróżni plik, jeśli istnieje, lub utworzy plik, jeśli nie ' t istnieje.

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *