将输入和输出文件所需的PATH传递给bash中的二进制文件

在某个目录($ PWD)中通过shell调用的bash脚本中,有一行需要调用位于$ PWD / bin的可执行文件,以便它读取位于$ PWD / inputfiles的输入文件以及生成的输出文件存储在$ PWD /输出中。

这可以实现吗?

PS:现在如果我在

cd /home/user

我做

./run config.inp output.dat

config.inp在/ home / user

config.inp读取位于同一目录中的文件data.txt和lines.txt。

现在我想从/ home / user / input读取并将输出文件写入/ home / user / output

我试试

./run input/config.inp

它说

error, data.txt not found

正如所描述的问题,这将做到这一点:

bin/executable < inputfiles/input > output/output

如果问题真的是bin/executable在当前目录中创建文件而不允许用户指定输入和输出文件,那么它会稍微复杂一些。 你可能想要做的是:

cd output
ln -s ../inputfiles/input
../bin/executable
rm input

这将在output目录中创建一个inputfiles/input的符号链接,然后再删除它。 如果您想要消除与output目录中的文件发生冲突的机会,那么您需要创建一个类似TMPDIR = $(mktemp -d)的临时目录,将所有内容都做好,然后将其复制回$OLDPWD/output

链接地址: http://www.djcxy.com/p/56815.html

上一篇: Pass input and output files desired PATH to a binary in bash

下一篇: Bash script to get its full path (use 'source' to invoke it)