我目前正在托管一个Github项目,该项目会修改〜/ .bashrc文件。随着项目的不断更新,我将需要知道如何更新〜/ .bashrc文件而不完全破坏它。出于礼貌,为了避免混淆,我所做的更改始于
########## Added by Bash-Shortcuts ##########
并以
结尾######### End. https://github.com/OoLunar/Bash-Shortcuts/ ##########
不太确定该如何处理吗,想法?
编辑: 我最终使用了@reichhart的答案,并添加了以下行:
test -r ~/.Bash-Shortcuts/.commandsrc && . ~/.Bash-Shortcuts/.commandsrc
这完美地解决了我的问题。
答案 0 :(得分:2)
解决方案:sed或其他就地流程
可能的问题:修改.bashrc的过程可能会崩溃,然后.bashrc可能会损坏。
更好的解决方案:source
一个外部文件。
假定:该应用程序名为myapplication
,它以用户user123
的身份运行。主目录位于/home
下面,例如在Linux(macOS:/Users
)。
~user123/.myapplicationrc
(解析为/home/user123/.myapplicationrc
)。将所有用于应用程序的命令/配置放在此处。使它至少对于user123
可读(不需要执行位)。~user123/.bashrc
(是/home/user123/.bashrc
)上-最好在文件末尾:test -r ~/.myapplicationrc && . ~/.myapplicationrc
(一个点,一个空格,然后是文件名。 ) .bashrc
中是否已存在该行,如果未填写,请添加该行:fgrep -q .myapplicationrc ~user123/.bashrc || echo 'test -r ~/.myapplicationrc && . ~/.myapplicationrc' >>~user123/.bashrc
更多详细信息:Replacement for source in sh
编辑:使用~
代替/home/...
。此“波浪扩展”在较旧的Bourne或Heirloom Shell中不起作用。但是所有的现代贝壳都包括小贝壳,例如Almquist Shell支持它。在macOS上,它也可以正常工作,但解析为/Users/...
。