我正在尋找一種方法來讓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