运行脚本如下:
一直抛如下问题,把GIT命令全手动执行了不止一遍。。。。。结果一样
后来无意将sh修改为bash ,通了。。。。。
分析原因:未将sh与bash区分清楚
通常Linux系统上,/bin/sh都是指向/bin/bash。可也有个性的产品:
1.现代的debian和ubuntu系统上,sh默认是dash的符号链接(根在这里,根在这里)
2.Busybox,它通常在Linux系统引导时作为initramfs的一部分运行。它使用了ash shell实现。
3.BSDs,以及通常所有非linux系统。OpenBSD 使用pdksh,Korn shell的后代。FreeBSD的sh是原始UNIX Bourne shell的后代。Solaris有它自己的sh但长期以来都不是与POSIX兼容的,是一种Heirloom项目提供的一个开源实现。
/bin/sh在系统上的指向
分为符号链接和硬链接两种。
1、符号链接查找方式:
% file -h /bin/sh
/bin/sh: symbolic link to bash
2、硬链接如下:
% find -L /bin -samefile /bin/sh
/bin/sh
/bin/bash
实际上-L标志同时包括符号链接和硬链接,但是这种方法的缺点是它不是可移植的,POSIX不需要find来支持-samefile选项,尽管GNU find和FreeBSD find都支持它。