目录树列表,脚本在 csh 中不起作用?

目录树列表,脚本在 csh 中不起作用?
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

我找到了一个显示目录树的命令(见上文),它无法正常工作。它给出了错误消息“非法变量名称”。我认为错误在于$符号。如何修改此命令以适应 cshell 环境?

答案1

:$应该用单引号引起来,以阻止 shell 扩展它。

所以ls -R | grep ':$' | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'


接下来要学习的是 shell 引用和扩展。

也有很多人认为csh这是一个错误。它充满了奇怪的不一致行为。考虑另一个bash,, ksh...fish

答案2

您可以使用外部命令来代替 shell 脚本。 “tree”可能在您的环境中可用,那么这很容易。

tree -d

相关内容