[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: alias in bash script issue



On Sat, 4 Mar 2023 at 19:30, Ken Young <ken@highwinds.cloud> wrote:

> Do you know why my alias can't work in the bash script?
> The info is as follows.
>
> 1)  this alias does exist
> $ alias |grep 'k='
> alias k='minikube kubectl --'
>
> 2) it also exists in .bash_profile
> $ cat ~/.bash_profile |grep 'k='
> alias k="minikube kubectl --"

[...]

> ./get.sh: line 5: k: command not found

[...]

> Please give suggestions.

Hi. Friends don't help friends to do bad things :)

Debian's default shell is 'dash'. Its manual, readable using 'man dash',
says

    Aliases provide a convenient way for naive users to create shorthands
    for commands without having to learn how to create functions with
    arguments.  They can also be used to create lexically obscure code.
    This use is discouraged

To achieve your goal, do this instead.

In .bash_profile, replace the line
  alias k='minikube kubectl --'

with these two lines:
  k() { minikube kubectl "$@" ; }
  export k


Reply to: