pwd | sed -e是什么意思?

时间:2015-05-22 13:52:00

标签: linux shell sed scripting

我在项目的.sh文件中找到了以下片段来定义一些路径:

PGMPATH=`pwd|sed -e "s#/survey1##" `

以上行是什么意思?

PGMPATH的参考用法如下:

 LIBS="${LIBS}:${PGMPATH}/edmz-par-api_1.4.jar"
 LIBS="${LIBS}:${PGMPATH}/commons-logging.jar"

如果它告诉jar文件所在的路径,请解释它是如何工作的。

1 个答案:

答案 0 :(得分:1)

首先,您应该知道这是两个命令 - pwdsed -e "s#/survey1##" - 这两个命令在pipeline中一起运行。也就是说,第一个命令的输出被发送到第二个命令作为输入。

通常,|在unix shell脚本中的含义。

那么,这些命令中的每一个都做了什么? pwd代表"打印工作目录"并打印当前目录(运行脚本的位置,除非脚本本身有任何cd命令)。

sed是一个命令,它实际上是一个完全独立的编程语言,人们可以使用它来执行许多简单的文本处理命令。您在此处使用的简单sed程序 - s#/survey1## - 从输入中删除字符串/survey1,然后打印结果。

因此,最终结果是变量PGMPATH成为当前目录,其中/survey1被剥离。