我在路径中移动了很多,并尝试使用别名集来最小化键入:
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),这很好,所以我没有取消引用吗?
这有效:
alias restore ' cd ` echo $\!* ` '
您最初的尝试可以更好地写为:
alias restore ' cd \$\!* '
此操作(和您原来的操作)无效,因为需要先进行变量扩展,并且在这种情况下,因为$
被转义,所以没有变量扩展。后!*
扩大,没有另一个变量扩展的发生。
在我提出的解决方案中,我避免$
通过echo
在子shell中运行a来进行转义,因此它可以正常工作。
只是为了确保您知道pushd
和popd
,对吗?对于大多数用户而言,这些功能足够有用且功能强大,尽管我当然可以在此处看到您别名中的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句