bash:如何在“ cat”创建文件命令的内容中获取<当前路径>

时间:2019-12-24 19:48:08

标签: bash sh cat

下面的shell脚本使用EOF标记之间指定的内容创建一个新文件“ foo.conf”。

sum

创建的文件包含以下内容:

#!/bin/sh
cat > foo.conf << EOF
DocumentRoot "./search.bin"
EOF

但是我需要具有当前目录的完整路径(我的shell脚本所在的位置),例如:

DocumentRoot "./search.bin"

这甚至可能吗? 预先感谢。

2 个答案:

答案 0 :(得分:1)

使用此:

#!/bin/sh
cat > foo.conf << EOF
DocumentRoot "$(readlink -f ./search.bin)"
EOF

您可以替换

readlink -f

作者

realpath   

答案 1 :(得分:0)

这里的文档的第一个单词不带引号,因此可以用于完整变量和其他扩展。所以你可以做

#!/bin/sh
cat > foo.conf << EOF
DocumentRoot "$(pwd)/search.bin"
EOF