为什么脚本在变量中定义常用命令?

R4F*_*4F6 8 bash shell sh

我一直在工作地点看到这个:

#!/bin/sh

.....

CAT=/usr/bin/cat                                  # An alias for cat
MAIL=/usr/bin/mail                                # An alias for mail
WC=/usr/bin/wc                                    # An alias for word count
GREP=/usr/bin/grep                                # An alias for grep
DIRNAME=/usr/bin/dirname                          # An alias for dirname
RM=/usr/bin/rm                                    # An alias for rm
MV=/usr/bin/mv                                    # An alias for mv

.....
Run Code Online (Sandbox Code Playgroud)

这只是我的公司吗?你有没有理由想要说明这些极为常见的命令在哪里?为什么我要$CAT引用/usr/bin/catcat指的是/usr/bin/cat什么?我错过了什么吗?它似乎是不必要的冗余.

Bar*_*mar 12

使用完整路径名可确保脚本正确运行,即使它由自定义其PATH环境变量的用户运行,以便它找到这些命令的不同版本而不是脚本所期望的.

使用变量简化了脚本的编写,因此您不必在每次出现在脚本中时编写命令的完整路径名.