shell脚本中的百分号和环境变量

shell脚本中的百分号和环境变量

在解决问题时,我在我们的应用程序使用的 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% 兼容,需要进行调整

看这个文件

1 -> Bash 脚本

2 -> 批处理脚本

但如果你愿意,你可以制作一个Windows CMD脚本,并使用“wine cmd”进行测试,它在wine中100%工作,在Windows中也工作

环境变量不一样,有些东西必须以不同的方式编写

相关内容