我到处都找过了,感觉很绝望
我的文件是这个
mkdir -p ~/Desktop/new_file && echo "hello\\world > ~/Desktop/new_file.txt
我也尝试过
hello\n world
hello ; world
我正在尝试从终端完成一个多行句子的返回信号到我的 hello world 输出
答案1
的手册页echo
显示以下内容:
DESCRIPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
If -e is in effect, the following sequences are recognized:
\\ backslash
\n new line
这意味着如果您想要多行输出,您只需从 开始echo -e
并添加\n
新行即可。
mkdir -p ~/Desktop/new_file && echo -e "hello\nworld" >> ~/Desktop/new_file/new_file.txt
希望这可以帮助!
答案2
如果我正确理解了你的问题你想使用:
echo "hello" > ~/Desktop/new_file.txt && echo "world" >> ~/Desktop/new_file.txt
然后使用cat ~/Desktop/new_file.txt
以下命令检查结果:
hello
world
有一种更简单的方法可以做到这一点,但我自己对 Linux 还不太熟悉。
答案3
首先,虽然你的标题提到touch
,但你实际使用的命令是,mkdir
所以你创建了一个目录称为new_file
。您将无法按new_file
原样写入文本。
实际上,没有必要在单独的步骤中创建目标文件:如果文件尚不存在,则将命令的标准输出重定向到命名文件将自动创建该文件。您可以删除(空) new_file
目录使用 rmdir ~/Desktop/new_file
出于以下原因为什么 printf 比 echo 更好?你可能想考虑使用
printf 'Hello\nworld\n' > ~/Desktop/new_file
或使用这里的文件
cat > ~/Desktop/new_file
Hello
world
它允许您直接输入多行文本,完成后用Ctrl+终止输入。D
无论哪种情况,如果您想要附加到文件而不是覆盖文件的现有内容,都可以用>
替换。>>