bashスクリプトで新しい空のファイルを作成するにはどうすればよいですか?

出力フラグの出力ファイル-o

残念ながら、スクリプトには実際のファイルが必要なようです。つまり、ユーザーは0バイトの空のファイルfilename.txtを作成してから、これを入力する必要があります。スクリプトコマンドラインの空のファイル

perl script1.pl -o filename.txt 

質問:bashスクリプト内に空のファイルを作成するにはどうすればよいですか?perl script1.pl -o filename.txt、スクリプトはファイルが存在しないというエラーを出します。

コメント

回答

touch通信を使用そして。 touch filename.txt

コメント

  • echo -n >file
  • 注意してください-ファイルがすでに存在する場合は空になりません
  • 実際にタッチして、" echo -n ファイル"がbashスクリプト内にありますが、スクリプトを実行するとエラーが発生します:"そのようなファイルはありませんまたはその行のディレクトリ"。誰か助けてもらえますか?
  • echo -n "" > filenameファイルが存在する場合は空にし、存在しない場合はファイルを作成します'存在しません。

回答

nullコマンド(:)リダイレクト(> filename)トリック(:>)。これはゼロに切り捨てられるか、名前付きファイルを作成します。

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

(シェルがNOCLOBBERオプションを設定すると失敗します。)

コメント

  • noclobberが設定されている場合は、リダイレクト>|を使用してclobberを実行するため、:>| filea -documented マニュアルでは
  • > filename.txtで十分であり、:は必要ありません。または、>> filename.txt存在しない場合は'ゴミ箱に入れたくない場合。
  • @ilkkachu質問はBashを指定しますが、:を使用すると、スクリプトが他のシェルでタスクを実行する可能性が高くなります。 Zsh。

回答

いつでも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: - 

回答

最短の方法:

>filename 

コメント

  • ベストアンサー。 '短くすることはできませんでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です