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