簡體   English   中英

在 bash 命令中間使用別名

[英]Using alias in the middle of bash command

是否可以在命令中間替換別名。 例如,如果假設我有一個別名

alias get_pods= 'kubectl get pods -n mynamespace'

當我從 bash 命令行執行“get_pods”時,這非常有效。

由於幾乎所有命令都需要命名空間作為后綴,所以我有可能將命名空間作為別名。 例如

alias  myname=' -n mynamespace'

然后我在命令行中使用它

kubectl get pods 'myname'

這樣,我可以為不同的命名空間創建多個別名,只需更改 shell 命令末尾的后綴即可。

基本上,我要做的就是在我的 bash 命令中替換別名並執行它。

更新

我嘗試添加“`”符號但它不起作用

kubectl get pods `myname`

-n: command not found
No resources found in default namespace.

您可以像這樣使用 function:

function myname() {
  "$@" -n mynamespace
}

"$@"表示“在此處插入所有 arguments”。 雙引號確保它們被正確地分詞。 然后你會調用它使用

myname kubectl get pods

語法有點不同,但行為是一樣的。 如果您真的想使用您想要的語法,您可能可以解決其他問題,但這會更復雜。

可能更簡單的是定義一個像這樣的變量:

export myname="-n mynamespace"

並使用執行它

kubectl get pods $myname

只需將數據存儲在數組中。

myname=(-n mynamespace)

kubectl get pods "${myname[@]}"

使用變量而不是別名。

myname='-n mynamespace'
kubectl get pods $myname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM