0

您可以使用该.命令从 shell 脚本执行命令,就好像它们在调用 shell 脚本本身中一样。

如果我在我的 shell 脚本中使用dot命令,它在不同的 shell 解释器中的行为是否相似?

请注意:我不是在问.命令和命令之间的区别source。如果这就是您想学习的内容,请查看另一个问题:在调用另一个脚本时使用点或“源” - 有什么区别?

4

1 回答 1

0

在某些简单的 shell 下,点运算符的行为与预期不同

$ /bin/sh --help
BusyBox v1.32.1 () multi-call binary.

$ cat /tmp/dot-sh.sh
#!/bin/sh
. xxx || echo "dot worked as expected"

$ /tmp/dot-sh.sh
/tmp/dot-sh.sh: 2: .: xxx: not found

要测试上面的示例,您可以:

docker run --rm -it alpine sh

但是在 下/bin/bash,点运算符的行为确实符合预期:

$ cat /tmp/dot-bash.sh
#!/bin/bash
. xxx || echo "dot worked as expected"

$ /tmp/dot-bash.sh
/tmp/dot-bash.sh: line 2: xxx: No such file or directory
dot worked as expected
于 2021-07-16T11:52:38.097 回答