1

私は今ハッカソンに参加しているので、誰かがこれにすぐに答えてくれたら、あなたは私に大きな恩恵を与えてくれるでしょう.

次のような .profile に ls() という関数を記述しました。

ls() {

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

}

しかし、ここでelse部分に行くと、無限ループに入るだけです

else で元の ls システム コールを呼び出すにはどうすればよいですか。または、ls の動作を 1 つのフォルダと他のフォルダでは通常とは異なるようにするにはどうすればよいですか。

4

2 に答える 2

6

実行可能ファイルへのフル パスを使用します。

/bin/ls
于 2013-06-16T18:05:43.957 に答える
3

組み込み関数は、command関数を考慮せずにコマンド ルックアップを実行します。

ls() {

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

}
于 2013-06-16T18:58:46.857 に答える