如何在`watch` 命令中使用别名?

tar*_*yte 3 bash alias watch

我的 .bashrc 中有一些 bash 别名~/.bashrc,但它们在watch命令中不可用。通常,我会source ./some_script.sh使用这些别名,但我无法弄清楚如何使用watch命令来做到这一点。

$ watch "my-alias"
Every 2.0s: my-alias

sh: 1: my-alias: not found
Run Code Online (Sandbox Code Playgroud)
watch -x bash -c "my-alias"
Every 2.0s: my-alias

sh: 1: my-alias: not found
Run Code Online (Sandbox Code Playgroud)

gle*_*man 6

别名在交互式shell中启用,所以试试这个:

watch -x bash -ic "my-alias"
# .............^
Run Code Online (Sandbox Code Playgroud)

  • 就是这样!`bash` 的额外选项,而不是 `watch`。我发现我必须添加一个额外的位以确保交互式 shell 不会因错误而退出。所以我的工作用法是``watch --interval 10 --exec /bin/bash -ic "my-alias || true"`` (2认同)