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 "" > filename
svuota 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.txt
andrebbe bene, non cè bisogno del:
. Oppure>> filename.txt
se 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