在不创建无限循环的情况下向基本 bash 命令添加内容
Adding things to basic bash commands without creating infinite loops
我想制作一个脚本来修改一些基本的命令行命令,例如 ls
或 cd
,最终会调用正常的 ls
或 cd
命令,但不创建无限循环。我怎么能那样做?
所以,我想做的是创建一个 cd2.sh 文件,例如:
#!/bin/bash
echo 'Oh! Your are changing directories'
cd "$@"
然后在 .bashrc
中输入别名(或 mac 中的 .bash_profile
):
alias cd = 'cd2.sh'
但这会造成无限循环,我的电脑对此不太满意。有没有简单的方法可以实现我的目标?
您可以使用 command
命令,或其快捷符号 \
。由于 cd
是内置命令,您也可以使用 builtin
命令。他们忽略函数和别名,而是直接在 $PATH
and/or 内置函数中查找可执行文件。
$ alias ls='echo no ls for you!'
$ ls
no ls for you!
$ command ls
[directory listing]
$ \ls
[directory listing]
我可以用以下简单的 ls 形式完成。
使用方式:./cd2.sh -s ./folder
!/bin/bash
ls $@
查看这些链接是否对您有帮助
http://ubunlog.com/creando-comandos-personalizados-en-ubuntu/
http://www.archivoslog.es/2009/07/usar-alias-y-crear-comandos-personalizados-en-linux/
我想制作一个脚本来修改一些基本的命令行命令,例如 ls
或 cd
,最终会调用正常的 ls
或 cd
命令,但不创建无限循环。我怎么能那样做?
所以,我想做的是创建一个 cd2.sh 文件,例如:
#!/bin/bash
echo 'Oh! Your are changing directories'
cd "$@"
然后在 .bashrc
中输入别名(或 mac 中的 .bash_profile
):
alias cd = 'cd2.sh'
但这会造成无限循环,我的电脑对此不太满意。有没有简单的方法可以实现我的目标?
您可以使用 command
命令,或其快捷符号 \
。由于 cd
是内置命令,您也可以使用 builtin
命令。他们忽略函数和别名,而是直接在 $PATH
and/or 内置函数中查找可执行文件。
$ alias ls='echo no ls for you!' $ ls no ls for you! $ command ls [directory listing] $ \ls [directory listing]
我可以用以下简单的 ls 形式完成。
使用方式:./cd2.sh -s ./folder
!/bin/bash
ls $@
查看这些链接是否对您有帮助
http://ubunlog.com/creando-comandos-personalizados-en-ubuntu/ http://www.archivoslog.es/2009/07/usar-alias-y-crear-comandos-personalizados-en-linux/