Som*_*DOS 7 shell bash function
假设我有bash_functions.sh:
function test(){
}
function test2(){
}
Run Code Online (Sandbox Code Playgroud)
而在我的~/.bashrc我做:
source ~/bash_functions.sh
Run Code Online (Sandbox Code Playgroud)
在采购时是否可以避免采购特定功能?我的意思是,bash_functions.sh除了test?
在函数定义中foo () { \xe2\x80\xa6 },如果foo是别名,则将其展开。有时这可能是一个问题,但在这里它有帮助。在获取文件之前使用foo其他名称的别名,您将定义不同的函数。在 bash 中,别名扩展在非交互式 shell 中默认处于关闭状态,因此您需要使用shopt -s expand_aliases.
如果sourced.sh包含
foo () {\n echo "foo from sourced.sh"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n那么你就这样使用它
\n\nfoo () {\n echo "old foo"\n}\nshopt -s expand_aliases # necessary in bash; just skip in ash/ksh/zsh\nalias foo=do_not_define_foo\n. sourced.sh\nunalias foo; unset -f do_not_define_foo\nfoo\nRun Code Online (Sandbox Code Playgroud)\n\n然后你就得到了old foo。请注意,源文件必须使用foo () { \xe2\x80\xa6 }函数定义语法,而不是function foo { \xe2\x80\xa6 },因为function关键字会阻止别名扩展。
| 归档时间: |
|
| 查看次数: |
8680 次 |
| 最近记录: |