创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