<分区>
我最近添加了
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
到我的 bash_aliases 文件。玩这个,我注意到虽然别名 ..
是允许的,但别名 .
是不允许的。 bash 别名中还允许使用哪些其他标点符号?
<分区>
我最近添加了
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
到我的 bash_aliases 文件。玩这个,我注意到虽然别名 ..
是允许的,但别名 .
是不允许的。 bash 别名中还允许使用哪些其他标点符号?
最佳答案
使用函数总是更安全:
function .. { cd '..'; }
function ... { cd '../..'; }
function .... { cd '../../..'; }
或者对于保守的偏好:
..() { cd '..'; }
...() { cd '../..'; }
....() { cd '../../..'; }
What is safer about doing it this way?
别名影响一级语法(if、case 等),其命令使用引号指定。这就像不必要地使用 eval 一样。另一方面,使用函数很简单,而且您确切地知道参数是如何扩展的。 TL;DR 别名是一个黑客。当您可以简单地定义一个函数时,这就像在 C 中使用 #define 语句。这是初学者喜欢创作的东西。
如果有人想为命令定义默认参数,您可以使用 command 使函数调用外部命令以避免递归。这是正确的做法。例如。 函数 grep { 命令 grep --color=auto "$@"; }
关于linux - bash 别名中允许使用哪些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690640/
相关文章:
bash - 如何在通过命令行运行/bin/bash 时将 $TERM 设置为一个值?
bash - 如何使用我在 github 中放置的 bash 脚本执行 chsh?
bash - 执行exec.Command似乎无法将信息通过管道传输或附加到.txt文件。我的语法错误吗?
python - 在 zipfile 中从 URL 读取 shapefile 时,错误为初始值不是 str
linux - 查看linux下当前设置的JAVA_OPTS
Java错误: java -v command throws errors
objective-c - 向 NSOutlineView 添加标签元素