我需要创建一个文本文件(除非它已经存在),然后使用bash将新行写入该文件。
我敢肯定这很简单,但是有人可以向我解释吗?
Answers:
如果您希望将其作为脚本,则以下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
将文件放在路径中的目录中,然后将其用于:
create_file NAME_OF_NEW_FILE
$ 1是一个特殊的shell变量,它在命令行中使用程序名称之后的第一个参数。即$ 1将在上述用法示例中提取NAME_OF_NEW_FILE。
假设您的意思是UNIX shell命令,只需运行
echo >> file.txt
echo
打印换行符,并>>
告诉外壳程序将该换行符附加到文件中,并创建一个尚不存在的换行符。
但是,为了正确回答该问题,如果文件已经存在,我需要知道您将要发生什么。例如,如果您想用换行符替换其当前内容,则可以使用
echo > file.txt
编辑:并响应贾斯汀的评论,如果您只想在文件不存在的情况下添加换行符,则可以
test -e file.txt || echo > file.txt
至少这在Bash中有效,我不确定它是否在其他shell中也适用。