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

时间:2016-04-08 13:39:16

标签: bash ls .bash-profile cd

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

所以,我想做的就像创建一个cd2.sh文件,如:

#!/bin/bash
echo 'Oh! Your are changing directories'
cd "$@" 

然后在.bashrc(或.bash_profile for mac)中添加别名:

alias cd = 'cd2.sh'

但这会产生无限循环,而我的电脑对此并不满意。有没有一种简单的方法来实现我的目标?

3 个答案:

答案 0 :(得分:3)

您可以使用command命令或其快捷符号\。由于cd是内置函数,因此您也可以使用builtin命令。它们忽略函数和别名,而是直接在$PATH和/或内置函数中查找可执行文件。

$ alias ls='echo no ls for you!'
$ ls
no ls for you!
$ command ls
[directory listing]
$ \ls
[directory listing]

答案 1 :(得分:0)

我可以使用以下简单的ls形式。

使用方式:./ cd2.sh -s ./folder

!/斌/庆典

ls $ @

答案 2 :(得分:0)