我正在寻找一种方法来让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. 如何通过命令行参数设置NSDictionary用户默认?
- 2. 设置默认参数为数组
- 3. 默认情况下修改默认命令:默认命令为
- 4. bash命令行参数替换变量的默认值
- 5. 设置默认参数fineUploader
- 6. 如何为命名函数参数设置默认值?
- 7. 设置默认的SQLite点命令
- 8. cmake - 设置默认命令行选项
- 9. PROC设置为默认方法参数
- 10. 将命令行参数作为默认函数参数
- 11. bash命令参数
- 12. 无法将默认布尔参数设置为默认值
- 13. C++默认数组大小控装置,带命令行参数
- 14. 试图设置bash命令
- 15. Python的argparser:如何设置位置参数的命令行输入作为可选参数的默认值?
- 16. 命令行参数和默认值(如何重置)
- 17. bash命令输出作为参数
- 18. 为所有新命令对象设置自定义默认CommandTimeout
- 19. 如何将Anaconda的python设置为我的默认python命令?
- 20. 命令提示符:默认设置为Python 2.7
- 21. 如何为可选参数设置null的默认参数值?
- 22. 将C/C++默认参数设置为之前的参数
- 23. 设置可选参数将其他参数的默认值设置为零
- 24. C#中的默认设置参数#
- 25. C++使用#define设置默认参数
- 26. 修复RStudio的默认参数()设置
- 27. Coq:设置默认隐式参数
- 28. R格设置默认参数
- 29. 设置默认参数,在PHP
- 30. Birt设置参数默认SQL查询
您可以编写一个调用的函数'ls',运行'/ bin/ls'。如果给它的参数传递它们,否则它会使用默认参数运行它。 – Barmar
有些命令在环境变量中查找默认设置。查看你感兴趣的命令的文档。 – Barmar
一个例子是'less',它使用'LESS'环境变量来获取默认选项。 – Barmar