在解决问题时,我在我们的应用程序使用的 shell 脚本之一中遇到了下面给出的这些条目。这是由不再在公司工作的人编写的,我正在尝试逐步弄清楚该脚本的作用。我们确实有一个环境变量 $PAT_HOME。通过%
在两端使用 ,是不是像 $PAT_HOME 一样调用环境变量?在这种情况下,使用 % 符号与使用环境变量时使用有何不同?
echo "cd " %PAT_HOME%
cd %PAT_HOME%
# P:
echo "pan.sh -file $kmrfile $logfile_location $csvfile"
cd $PAT_HOME
sh pan.sh -file $kmrfile $logfile_location $csvfile
答案1
它看起来像是 Unix shell 脚本和 DOS 批处理脚本的混合体:)
在 DOS 中,通过将环境变量括在 之间来访问环境变量%
。与 类似%PATH%
,但在 Linux 中这是无法完成的。
你试一试
$ echo %PATH%
%PATH%
这不会扩展环境变量。但是该脚本真的有效吗?因为在脚本的后面部分中,变量是通过 访问的,$
但上部部分是通过 访问的%
。大多数情况cd %PAT_HOME%
下,除非名为存在的文件,否则您应该在部分中收到错误%PAT_HOME%
!
答案2
Linux 脚本 Shell 与 Windows CMD 脚本不是 100% 兼容,需要进行调整
看这个文件
但如果你愿意,你可以制作一个Windows CMD脚本,并使用“wine cmd”进行测试,它在wine中100%工作,在Windows中也工作
环境变量不一样,有些东西必须以不同的方式编写