【发布时间】:2014-05-05 14:01:18
【问题描述】:
我想知道是否有任何方法可以制作一个脚本,它会在后台运行,并且每次我在 Linux 中更改目录(“cd”)时都会调用“ls”命令。
我知道,为了将进程置于后台,您需要在运行时添加一个“&”。
提前致谢!
【问题讨论】:
我想知道是否有任何方法可以制作一个脚本,它会在后台运行,并且每次我在 Linux 中更改目录(“cd”)时都会调用“ls”命令。
我知道,为了将进程置于后台,您需要在运行时添加一个“&”。
提前致谢!
【问题讨论】:
您可以像这样在.bashrc 中定义一个函数来实现:
cdlist(){
cd "$1" && ls
}
【讨论】:
alias cd=cdlist。
cd 并避免递归,而不是创建一个函数然后使用别名:cd() { command cd "$@" && ls; }
您可以在~/.bashrc 或类似的启动脚本中将cd 替换为shell 函数:
function cd {
builtin cd "$@"
RET=$?
ls
return $RET
}
这也将返回cd 的退出代码,以防万一......
builtin 是一个 shell 内置函数,用于执行 shell 内置函数 cd 而不是 cd 函数,以避免陷入递归循环 - 至少在 bash 中 - 但也应该与其他 shell 一起使用...
【讨论】:
~/.profile 中不起作用,因为它只在登录时提供。删除它。
builtin 函数的新知识,我希望我知道这一点,因为我认为在编写脚本时它是非常有价值的项目。谢谢!
builtin cd "$@" 和 command cd "$@" 之间的区别是什么?
builtin 显式调用内置 shell,command 还考虑路径上的可执行文件。有关更详细的说明,请参阅manual。