我正在寻找一种方法来让bash命令通过默认参数代替0参数。例如,当将$ ls传递给命令行时,用户实际上会将$ ls --color传递到命令行。为bash命令设置默认参数
0
A
回答
1
您可以使用函数或别名。
如果你想与您更多的选择,前缀的所有ls
调用,您可以定义一个别名是这样的:
alias ls="ls --color"
这就像使用隐每次使用ls
时间的选项。被调用时,别名被其分配的值替换。必须在命令的开头使用别名,并且扩展的别名将成为将被解释的最终语句的一部分。换句话说,别名是自动文本替换的一种形式,并且在他们可以做的事情上相当有限。
正如Barmar建议,你也可以使用一个功能,它允许您使用默认参数(或其中的一些)只有在完全没有参数如下:
ls()
{
if
(($#)) # True if at least one argument present
then
command ls "[email protected]"
else
command ls --color
fi
}
一件事别名允许函数不能在与调用上下文相同的上下文中执行(它们是文本替换的形式,而不是函数调用),因此它们可以与位置参数进行交互。举个例子,你可以有这样一个别名:
alias shift_and_echo="shift ; echo"
这实际上转移了位置参数作为活跃在使用别名,违背了一个函数调用,它只会改变其自身的参数,并留下电话上下文位置参数不受影响。 echo
会有别名调用之后的任何参数(它可能什么也没有)。
对我来说,这是在为某些特定目的脚本中使用别名的主要原因,否则功能一般较好,能够接收参数,包括局部变量...
相关问题
- 1. 设置默认参数为数组
- 2. 默认情况下修改默认命令:默认命令为
- 3. bash命令行参数替换变量的默认值
- 4. 如何为命名函数参数设置默认值?
- 5. 设置默认的SQLite点命令
- 6. PROC设置为默认方法参数
- 7. bash命令参数
- 8. 无法将默认布尔参数设置为默认值
- 9. 试图设置bash命令
- 10. Python的argparser:如何设置位置参数的命令行输入作为可选参数的默认值?
- 11. bash命令输出作为参数
- 12. 命令行参数和默认值(如何重置)
- 13. 将C/C++默认参数设置为之前的参数
- 14. Birt设置参数默认SQL查询
- 15. C++使用#define设置默认参数
- 16. 设置默认参数,在PHP
- 17. C#中的默认设置参数#
- 18. R格设置默认参数
- 19. Bash /打开一个命令运行的命令作为参数
- 20. 命令不认识bash命令别名
- 21. Linux bash,获取getopt默认参数
- 22. 为关键字参数任意数量的设置默认值
- 23. 设置/安装命令行参数
- 24. 从命令行设置参数
- 25. 将document.title设置为默认
- 26. 为Sinatra设置默认content_type
- 27. Mysql设置为默认?
- 28. 带命令值的Bash设置变量
- 29. 如何设置一个bash命令
- 30. 从bash命令行设置php变量
您可以编写一个调用的函数'ls',运行'/ bin/ls'。如果给它的参数传递它们,否则它会使用默认参数运行它。 – Barmar
有些命令在环境变量中查找默认设置。查看你感兴趣的命令的文档。 – Barmar
一个例子是'less',它使用'LESS'环境变量来获取默认选项。 – Barmar