Jexécute un script Perl tiers écrit de telle sorte quil nécessite un fichier de sortie pour lindicateur de sortie, -o.
Malheureusement, le script semble nécessiter un fichier réel, cest-à-dire que les utilisateurs doivent créer un fichier vide filename.txt avec 0 octet, puis saisir ceci fichier vide sur la ligne de commande du script
perl script1.pl -o filename.txt
Question: Comment créer un fichier vide dans un script bash? Si lon essaie simplement perl script1.pl -o filename.txt, le script indique que le fichier nexiste pas.
Commentaires
-
touch filename.txt - Possible duplication de Comment créer un simple fichier .txt (texte) à laide du terminal?
- voir aussi Pourquoi ' ny a-t-il pas de commande shell pour créer des fichiers?
Réponse
Utilisez touch comm et. touch filename.txt.
Commentaires
Réponse
Utilisez la commande null (:) rediriger (> filename) astuce (:>), car cela tronquera à zéro ou créera le fichier nommé.
$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea
(Cela échouera si le shell définit une option NOCLOBBER.)
Commentaires
- Si noclobber est défini, utilisez la redirection
>|pour clobber, donc:>| filea– documenté dans le manuel - Juste
> filename.txtferait laffaire, pas besoin de:. Ou>> filename.txtsi nous ' ne voulons pas le mettre à la poubelle sil existe. - @ilkkachu bien que la question spécifie Bash, lutilisation de
:rend le script plus susceptible daccomplir sa tâche avec dautres shells, par exemple Zsh.
Réponse
Vous pouvez toujours utiliser perl aussi.
$ 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éponse
Le chemin le plus court:
>filename
Commentaires
- Meilleure réponse. ' t être plus court.
echo -n >fileecho -n "" > filenamevidera le fichier sil existe ou créera un fichier sil ne le fait pas ' t existent.