代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

在Unix/Bash中,“xargs-p”是在运行任何命令之前提示确认的好方法吗?

  •  4
  • nonopolarity  · 技术社区  · 14 年前

    我问过如何发出命令“询问是/否”

    In Bash, how to add "Are you sure [Y/n]" to any command or alias?

    hg push ssh://username@www.example.com//somepath/morepath
    

    echo ssh://username@www.example.com//somepath/morepath | xargs -p hg push
    

    这个 -p 就是那个耍花招的。这将被设置 hgpushrepo . 这样好吗, 有什么陷阱,或者更好的选择吗?我是 而不是写剧本去做。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Dennis Williamson    14 年前

    使用别名的缺点是它不接受参数。如果你想概括一下 hg 命令以便您可以将其与任何用户名、主机名或路径一起使用,您必须使用脚本或函数。

    顺便说一下,使用脚本 alias ls='ls --color=auto' ).

    对于经常使用的不需要参数的不变命令(除了那些可以在末尾附加的参数),别名是非常好的。而且使用 xargs 以你展示的方式。这有点过分了,而且是对外部可执行文件的不必要的调用,但在本例中这应该不重要。

        2
  •  1
  •   Ole Tange    7 年前

    xargs 因为分离器的问题,有一种令人不快的倾向,导致不舒服的惊喜 https://en.wikipedia.org/wiki/Xargs#Separator_problem

    http://www.gnu.org/software/parallel/ 没有那个

    seq 10 | parallel -p echo
    

    观看GNU Parallel的简介视频: http://www.youtube.com/watch?v=OpaiGYxkSuQ

        3
  •  0
  •   ceving    7 年前

    ls () { command ls -F "$@"; }
    

    这将定义一个包装原始命令的函数,并保留 PATH 变量。