**有的时候当我们在脚本中执行某个命令时,由于操作系统的不同,可能会导致命令所在路径的不同,
甚至是命令名称或选项的不同,为了保证脚本具有更好的平台移植性,
我们可以将该功能的命令赋值给指定的变量,之后再使用该命令时,直接使用该变量即可。
这样在今后增加更多OS时,我们只需为该变量基于新系统赋予不同的值即可,
否则我们将不得不修改更多的地方,这样很容易导致因误修改而引发的Bug。**
[root@xieqichao ~]# cat > test5.sh
#!/bin/sh
#1. 通过uname命令获取当前的系统名称,之后再根据OS名称的不同,给PING变量赋值不同的ping命令的全称。
osname=`uname -s`
#2. 可以在case的条件中添加更多的操作系统名称。
case $osname in
"Linux")
PING=/usr/sbin/ping ;;
"FreeBSD")
PING=/sbin/ping ;;
"SunOS")
PING=/usr/sbin/ping ;;
*)
;;
esac
CTRL+D
[root@xieqichao ~]# . ./test5.sh
[root@xieqichao ~]# echo $PING
/usr/sbin/ping