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