当我运行以下脚本时:
#!/bin/sh
declare path="my.path"
if [[ "$path" =~ \. ]] ; then
echo "yes"
else
echo "no"
fi
我打印了yes
。
但是,如果我没记错的话,declare
和[[ ]]
在POSIX shell中不可用;那么这个脚本怎么不会抛出任何错误呢?
我在Windows的git上运行脚本,它可以解释这种奇怪的行为吗?
答案 0 :(得分:4)
/bin/sh
是指向您实际shell的链接。这并不意味着您正在运行纯POSIX。 Git for windows homepage非常清楚您正在运行bash
,git-bash
标签也是如此。
即使在Linux上,/bin/sh
仍然可以成为bash:
ls -la /bin/sh
lrwxrwxrwx. 1 root root 4 Mar 27 09:33 /bin/sh -> bash