shell 管道否与是,以确认壳体

hi3rlvi2  于 2023-02-13  发布在  Shell
关注(0)|答案(1)|浏览(104)

我想知道一种用"不"来表示确认的方法
考虑示例

$ touch ff fff
$ mv ff fff
mv: overwrite 'fff'?

可以用管道发送"yes"以避免回答确认提示(以预先肯定地解决它)

$ touch ff fff
$ yes | mv ff fff
mv: overwrite 'fff'? renamed 'ff' -> 'fff'

我的问题是:* * 是否有一种方法可以用否定答案来解决它?**类似于

$ no | mv ff fff
zsh: command not found: no
mv: overwrite 'fff'? %

这里的问题是piping no返回错误,这对于set -e脚本来说可能很烦人

aor9mmx1

aor9mmx11#

yes可以打印不同的字符串:

$ yes n | mv ff fff

但是,最好是寻找可以执行此操作的标志,而不是通过交互式提示编写脚本。大多数程序都有这样的选项。mv-f表示强制,-n表示无碰撞:

$ mv -f ff fff   # force overwrite
$ mv -n ff fff   # never overwrite

相关问题