您可以使用该.
命令从 shell 脚本执行命令,就好像它们在调用 shell 脚本本身中一样。
如果我在我的 shell 脚本中使用dot命令,它在不同的 shell 解释器中的行为是否相似?
请注意:我不是在问.
命令和命令之间的区别source
。如果这就是您想学习的内容,请查看另一个问题:在调用另一个脚本时使用点或“源” - 有什么区别?
您可以使用该.
命令从 shell 脚本执行命令,就好像它们在调用 shell 脚本本身中一样。
如果我在我的 shell 脚本中使用dot命令,它在不同的 shell 解释器中的行为是否相似?
请注意:我不是在问.
命令和命令之间的区别source
。如果这就是您想学习的内容,请查看另一个问题:在调用另一个脚本时使用点或“源” - 有什么区别?
在某些简单的 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