如何使用OS X终端创建文件并在其中插入一行


22

如何使用OS X上的终端执行以下操作?

.inputrc在用户的主目录中创建一个名为的文件,并将以下行放入其中:

set completion-ignore-case On

Answers:


31

快速回答

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

说明

首先,创建文件:

touch ~/.inputrc

然后,将内容添加到文件中:

echo "set completion-ignore-case On" >> ~/.inputrc

touch创建一个空文件(假设该~/.inputrc文件尚不存在)。echo将文本写入通常是您的屏幕的“标准输出”(简称“ stdout”),但是由于重定向(>>),输出被重定向到~/.inputrc。此设置会将行添加到文件中。

如果~/.inputrc已经存在,并且您要擦除(显示)其内容,然后将行写入其中(即,仅使用此行文本创建文件),请执行以下操作:

echo "set completion-ignore-case On" > ~/.inputrc

单箭头(>)(又称“大于”符号)echo指示创建仅使用给定文本作为文件内容的文件,而不是将内容写入文件末尾。(实际上,echo不创建文件; shell创建文件,丢弃所有现有内容,然后echo命令写入新内容。)


如果您使用第一种方法(使用>>),并且发现添加的行被涂抹到了前一行,例如,

一些东西在这里
一些更多的东西在这里设置了complete-ignore-case On

那么您需要编辑该文件以对其进行修复。如果现有文件的最后一行以文本字符而不是“换行”字符(即行尾标记)结尾,则会发生这种情况。这对于.TXTWindows上的文件很常见,但在* nix上很少见。

如果您以某种方式提前意识到.inputrc文件中包含的内容不以换行符结尾,则应使用以下echo语句:

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

\n之前的语句被解释为换行符,所以换行之前的内容之后,你要添加新的东西之前添加。

或者,键入更多但可读性更高,

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

要么

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

哪个做同样的事情;即,在现有文本中提供缺少的换行符,然后在其后添加set completion-…命令。


1
这里没有理由使用该touch命令。echo "…" >> ~/.inputrc够了。
G-Man说'恢复莫妮卡'

1
除非您要附加到的文件不存在。
amrx

@Baron:否,echo "…" >> ~/.inputrc如果文件不存在,将创建该文件。除病理情况外,例如~不存在,您在中没有写许可权~,或者文件系统已满。在这种情况下,touch将无济于事。  touch在这里完全多余。
G-Man说'恢复莫妮卡'

4

您需要做的只是:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo 只需通过普通输出通道(stdout)回显给出的文本

>>从左侧命令输出的标准输出写入右手文件,而你的情况是~/.inputrc

~/ 是相同的 /home/your_username/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.