2011-01-11 82 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 

編輯有關使用:

保存哪個版本與你喜歡的名字,讓我們說「create_file」(引號礦,你不希望他們在文件名)。然後,使文件executatble,在命令提示符下執行:

chmod u+x create_file 

Put the file in a directory in your path,然後使用它:

create_file NAME_OF_NEW_FILE 

的$ 1是一個特殊的shell變量,它需要在命令的第一個參數在節目名稱後面行;即$ 1將在上面的使用示例中選取NAME_OF_NEW_FILE。

2

你的問題有點含糊。這是一個shell命令做什麼,我想你想做的事:

echo >> name_of_file 
10

假設你的意思是UNIX shell命令,只要運行

echo >> file.txt 

echo打印一個換行符,和>>告訴殼將該換行附加到該文件,如果該文件尚不存在,則創建它。

但是,爲了正確回答問題,我需要知道如果文件已經存在會發生什麼。如果你想用換行來代替目前的內容,例如,你可以使用

echo > file.txt 

編輯:和響應Justin的評論,如果你想添加僅如果文件沒有換行符已經存在,你可以做

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

至少在Bash中工作,我不確定它是否也在其他shell中。

+0

+1。我認爲還有另外一種可能的解釋:如果文件尚不存在,則創建並編寫一個換行符,否則根本不要修改該文件。 – 2011-01-11 21:46:13

+0

@Justin:好點,我想我也可以添加一個,我們將涵蓋所有選項。 – 2011-01-11 22:12:55

42

在unix中創建文本文件可以通過文本編輯器(vim,emacs,gedit等)完成。但是你要什麼可能是這樣的

echo "insert text here" > myfile.txt 

這將把文本「插入文字在這裏」到一個文件myfile.txt的。要驗證這個工作是否使用命令'貓'。

cat myfile.txt 

如果要追加到一個文件中使用此

echo "append this text" >> myfile.txt