将Shell命令赋值给指定变量,以保证脚本的移植性

**有的时候当我们在脚本中执行某个命令时,由于操作系统的不同,可能会导致命令所在路径的不同,
甚至是命令名称或选项的不同,为了保证脚本具有更好的平台移植性,
我们可以将该功能的命令赋值给指定的变量,之后再使用该命令时,直接使用该变量即可。
这样在今后增加更多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
发布了329 篇原创文章 · 获赞 52 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/xie_qi_chao/article/details/105036759