2011-01-11 7 views

答えて

17

スクリプトとしてこれを希望している場合は、以下のbashスクリプトは、あなたがやりたい(プラス時にファイルあなたを教えてくださいすでに)が存在する:

#!/bin/bash 
if [ -e $1 ]; then 
    echo "File $1 already exists!" 
else 
    echo >> $1 
fi 

あなたが使用することができ、メッセージを、 "既に存在する" 必要がない場合:

#!/bin/bash 
if [ ! -e $1 ]; then 
    echo >> $1 
fi 
012使用方法について

編集:

保存、好きな名前を持つ方のバージョン、のは(私を引用し、ファイル名でそれらをしたくない)「CREATE_FILEを」と言ってみましょう。そして、ファイルexecutatbleを作るために、コマンドプロンプトで実行します。

chmod u+x create_file 

Put the file in a directory in your path、その後でそれを使用します。

create_file NAME_OF_NEW_FILE 

$ 1コマンドの最初の引数をとる特殊なシェル変数でありますプログラム名の後の行。つまり、$ 1は上記の使用例でNAME_OF_NEW_FILEを取得します。

+0

ここに$ 1は何ですか? – switz

+0

"text.txt"に置き換えることができますか? – switz

+1

@スウィッツ:$ 1を説明する編集を参照してください。スクリプトの$ 1を "text.txt"に置き換えると、ファイル名として "text.txt"が常に使用されます。 – GreenMatt

2

あなたの質問は少し曖昧です。これは、私はあなたがしたいと思うものをしているシェルコマンドです:ちょうど、

echo >> file.txt 

echoプリント改行を実行

echo >> name_of_file 
10

を使用すると、UNIXのシェルコマンドを意味すると仮定し、>>はにシェルに指示しますその改行をファイルに追加し、それがまだ存在しない場合に作成します。

質問に適切に答えるためには、ファイルが既に存在する場合に起こりたいことを知る必要があります。あなたは改行で現在の内容を交換したい場合、たとえば、あなたが使用することになり

echo > file.txt 

EDIT:とジャスティンさんのコメントに応じて、あなたは、ファイルがなかった場合にのみ、改行を追加したい場合すでに存在しています。

test -e file.txt || echo > file.txt 

少なくともBashで動作しますが、他のシェルでも動作しているかどうかはわかりません。

+0

+1。ファイルがまだ存在しない場合は改行を作成して書き、そうでなければファイルを変更しないでください。 –

+0

@ジャスティン:良い点は、私もその1つを追加することができると私たちはすべてのオプションをカバーする必要があります。 –

42

テキストファイルをUNIXで作成するには、テキストエディタ(vim、emacs、geditなど)を使用します。しかし、あなたが望むものは、次のようなものかもしれません。

これは、テキスト 'insert text here'をファイルmyfile.txtに入れます。これが機能したことを確認するには、コマンド 'cat'を使用します。

cat myfile.txt 

ファイルの使用に追加したい場合は、この

echo "append this text" >> myfile.txt 
関連する問題