我在路径中移动很多,并尝试使用别名集来最小化输入:
alias restore 'set restore=\!*; cd \$${restore}'
alias save 'setenv \!* `pwd`'
我正在使用tcsh;保存工作但恢复失败:
2% save x
2% cd
2% restore x
$x: No such file or directory.
我检查var(x)并且没关系,所以我没有解除引用权吗?
答案 0 :(得分:0)
这有效:
alias restore ' cd ` echo $\!* ` '
您最初的尝试可以写得更好:
alias restore ' cd \$\!* '
这(和你原来的)不起作用,因为变量扩展需要先发生,在这种情况下没有变量扩展,因为$
被转义。展开!*
后,没有发生另一个变量扩展。
在我提出的解决方案中,我避免通过在子shell中运行$
来转义echo
,因此它可以正常工作。
为了确保您了解pushd
和popd
,对吧?对于大多数用户来说,这些用户非常有用且功能强大,但我可以在这里看到别名中的值。