Sto eseguendo uno script Perl di terze parti scritto in modo tale da richiedere un file di output per il flag di output, -o.
Sfortunatamente, lo script sembra richiedere un file effettivo, ovvero gli utenti devono creare un file vuoto filename.txt con 0 byte e quindi inserire questo file vuoto nella riga di comando dello script
perl script1.pl -o filename.txt
Domanda: come creerei un file vuoto allinterno di uno script bash? “>
, lo script restituisce un errore che il file” non esiste.
Commenti
Risposta
Usa touch comm e. touch filename.txt.
Commenti
-
echo -n >file - fai attenzione: questo non svuoterà il tuo file se esiste già
- In realtà ho provato a toccare e " echo -n > file " allinterno del mio script bash ma ottengo un errore quando eseguo lo script: " Nessun file di questo tipo o la directory " su quella riga. Qualcuno può aiutare per favore?
-
echo -n "" > filenamesvuota il file se esiste o crea un file se non ' non esiste.
Risposta
Utilizza il comando null (:) redirect (> filename) trucco (:>), poiché verrà troncato a zero o creerà il file denominato.
$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea
(Questo fallirà se la shell imposta unopzione NOCLOBBER.)
Commenti
- Se noclobber è impostato, utilizza il reindirizzamento
>|a clobber, quindi:>| filea– documentato nel manuale - Solo
> filename.txtandrebbe bene, non cè bisogno del:. Oppure>> filename.txtse non ' vogliamo eliminarlo se esiste. - @ilkkachu sebbene la domanda specifica Bash, luso di
:rende lo script più propenso a svolgere il suo compito con altre shell, ad es. Zsh.
Risposta
Potresti sempre usare anche 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: -
Risposta
La via più breve:
>filename
Commenti
- Migliore risposta. ' non può essere più breve.
touch filename.txt