在不创建无限循环的情况下向基本 bash 命令添加内容

Adding things to basic bash commands without creating infinite loops

我想制作一个脚本来修改一些基本的命令行命令,例如 lscd,最终会调用正常的 lscd命令,但不创建无限循环。我怎么能那样做?

所以,我想做的是创建一个 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/