我在项目的.sh文件中找到了以下片段来定义一些路径:
PGMPATH=`pwd|sed -e "s#/survey1##" `
以上行是什么意思?
PGMPATH的参考用法如下:
LIBS="${LIBS}:${PGMPATH}/edmz-par-api_1.4.jar"
LIBS="${LIBS}:${PGMPATH}/commons-logging.jar"
如果它告诉jar文件所在的路径,请解释它是如何工作的。
答案 0 :(得分:1)
首先,您应该知道这是两个命令 - pwd
和sed -e "s#/survey1##"
- 这两个命令在pipeline中一起运行。也就是说,第一个命令的输出被发送到第二个命令作为输入。
通常,|
在unix shell脚本中的含义。
那么,这些命令中的每一个都做了什么? pwd
代表"打印工作目录"并打印当前目录(运行脚本的位置,除非脚本本身有任何cd
命令)。
sed
是一个命令,它实际上是一个完全独立的编程语言,人们可以使用它来执行许多简单的文本处理命令。您在此处使用的简单sed
程序 - s#/survey1##
- 从输入中删除字符串/survey1
,然后打印结果。
因此,最终结果是变量PGMPATH
成为当前目录,其中/survey1
被剥离。