点击(此处)折叠或打开
- # !/bin/bash
- ROOT_UID=0
- if [ "$UID" -ne "$ROOT_UID" ]
- then
- echo "cannot execute this script."
- exit 1
- fi
- ......
当时很迷惑,难道这两个执行方式有区别。
无意中,查看sh命令,发现他是指向Ubuntu的dash的链接,而不是bash。然后执行dash,再执行echo $UID发现确实是空的。问题原因找到。原来是在dash下没有UID环境变量。
看来各种shell的解释器还是有很大不同的。
特别记录下来分享给大家。