這是命令語法。格式“name:/jsmith/”是字面的,不能更改。
search -l "name:/jsmith/"
search -l "name:/jsmi.*/"
我正在嘗試創建一個 bash 別名,它將以命令列變數 ($1) 作為輸入,如下所示:
alias new_search='search -l "name:/$1/"'
所以新的搜索命令就是:
new_search jsmith
new_search jsmi.*
顯然上面的別名是不正確的。
我知道轉義字符有助于保留(“和/),我也在網上搜索并取得了一些進展,但下面的語法仍然失敗。
alias new_search='search -l \"name:\/$1\/\"'
有什么建議么?謝謝!
- 這是我找到的參考:How to use an environment variable inside aquoted string in Bash
uj5u.com熱心網友回復:
一個好的經驗法則是,如果您的別名需要一個引數(并且不僅僅是將該引數附加到別名,而是用它做其他事情),您應該考慮使用一個函式。你可以把它放在你的 bashrc 或任何東西中,并像你的別名一樣獲取它。
new_search() {
search -l "name:/$1/"
}
您對轉義引號是正確的,但是:
您$1不會擴展,因為外部引號是單引號,不允許變數擴展,并且:
別名只是擴展到作為定義給出的字串,它們不采用位置引數,所以無論哪種方式你$1都不會在那里做任何事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/525704.html
標籤:重击变量输入命令行参数
上一篇:(SOLVE)SpringbootJPA復雜SQL查詢與JOIN并回傳自定義物件
下一篇:從Bash中的特定范圍計算所有5
