Cum pot crea un nou fișier gol într-un script bash?

Execut un script Perl terț scris astfel încât să necesite un fișier de ieșire pentru semnalizatorul de ieșire, -o.

Din păcate, scriptul pare să necesite un fișier real, adică utilizatorii trebuie să creeze un fișier gol filename.txt cu 0 octeți și apoi să introducă acest fișier gol pe linia de comandă a scriptului

perl script1.pl -o filename.txt 

Întrebare: Cum aș crea un fișier gol într-un script bash? Dacă se încearcă pur și simplu perl script1.pl -o filename.txt, scriptul arată o eroare că fișierul nu există.

Comentarii

Răspuns

Utilizați touch și. touch filename.txt.

Comentarii

  • echo -n >file
  • aveți grijă – acest lucru nu vă va goli fișierul dacă există deja
  • De fapt, am încercat atingerea și " echo -n > fișier " în scriptul meu bash, dar primesc o eroare când execut scriptul: " Nu există un astfel de fișier sau directorul " pe acea linie. Vă poate ajuta cineva?
  • echo -n "" > filename va goli fișierul dacă există sau creează un fișier dacă nu ' nu există.

Răspuns

Utilizați comanda nulă (:) redirect (> filename) truc (:>), deoarece acest lucru se va trunchia la zero sau va crea fișierul numit.

$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea 

(Acest lucru va eșua dacă shell-ul setează o opțiune NOCLOBBER.)

Comentarii

  • Dacă noclobber este setat, utilizați redirecționarea >| pentru a clobber, deci :>| filea – documentat în manual
  • Doar > filename.txt ar face, nu este nevoie de :. Sau >> filename.txt dacă ' nu vrem să îl aruncăm dacă există.
  • @ilkkachu deși întrebarea specifică Bash, folosind : face ca scriptul să își îndeplinească sarcina cu alte shell-uri, de ex. Zsh.

Răspuns

Puteți folosi întotdeauna și perl.

$ 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: - 

Răspunde

Cel mai scurt mod:

>filename 

Comentarii

  • Cel mai bun răspuns. ' nu ar putea fi mai scurt.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *