创build文本文件,并使用bash填充它

我需要创build一个文本文件(除非它已经存在),并使用bash写一个新的文件到文件。

我确定这很简单,但有谁能解释这个给我?

如果你想把它作为一个脚本,下面的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”(引用我的,你不希望他们的文件名)。 然后,要使文件可执行,请在命令提示符下执行:

 chmod u+x create_file 

将文件放在path中的目录中 ,然后将其用于:

 create_file NAME_OF_NEW_FILE 

$ 1是一个特殊的shellvariables,它在程序名后面的命令行中使用第一个参数; 即$ 1将在上面的用例中提取NAME_OF_NEW_FILE。

在unix中创build一个文本文件可以通过文本编辑器(vim,emacs,gedit等)完成。 但是你想要的可能是这样的

 echo "insert text here" > myfile.txt 

这将把文本插入到文件myfile.txt中。 要validation这个工作使用命令'猫'。

 cat myfile.txt 

如果你想追加到一个文件使用这个

 echo "append this text" >> myfile.txt 

假设你的意思是UNIX shell命令,就运行

 echo >> file.txt 

echo打印一个换行符,并且>>告诉shell将该换行符追加到文件中,如果该文件不存在则创build。

然而,为了正确回答这个问题,我需要知道如果文件已经存在,你想要发生什么。 例如,如果您想用换行符replace当前的内容,则可以使用

 echo > file.txt 

编辑:并回应贾斯汀的评论,如果你想添加新行,只有当文件不存在,你可以做

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

至less在Bash里有效,我不确定它是否也在其他shell中。

你的问题有点含糊。 这是一个shell命令,可以执行我想要的操作:

 echo >> name_of_file