用函数覆盖后如何获取原始系统命令?

时间:2013-06-16 18:02:47

标签: macos bash unix .profile

我现在正在Hackathon,所以如果有人能尽快回答这个问题,你会给我一个巨大的帮助。

我在.profile中编写了一个名为ls()的函数,如下所示:

ls() {

  if(some condition);
    do something
  else
    ls; #(CALL TO ORIGINAL ls SYSTEM CALL)
  fi

}

但是当它进入else部分时,它只是进入一个无限循环

如何在else中调用原始的ls系统调用 或者,我怎样才能使ls在一个文件夹中表现不同,通常在其他文件夹中表现不同。

2 个答案:

答案 0 :(得分:6)

使用可执行文件的完整路径:

/bin/ls

答案 1 :(得分:3)

command内置执行命令查找而不考虑函数:

ls() {

  if(some condition);
    do something
  else
    command ls
  fi

}