我该如何将其写为别名?
p() {
DIR=~/projects/$@
pushd "$DIR"
}
据我所知,这是通过管道将 stdin 传输到 Pushd 而不是 xargs:
alias p="xargs printf ~/projects/%s | pushd"
作为一个函数,它可能更好,但我觉得通过知道如何将其写在一行上并获得正确的管道,我可以学到一些东西。
答案1
正如@AndreasWiese 评论的那样,您不能使用别名来执行此操作。别名附加以空格分隔的参数,因此您无法将它们(以简单的方式)连接到别名命令。
对您的功能的评论:您为什么使用$@
?你应该改用$1
。如果您使用多个参数 ( ) 调用函数p a b c
,则可能会收到错误 ( 未知目录。b: command not found
)