将输入和输出文件所需的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
。
上一篇: Pass input and output files desired PATH to a binary in bash
下一篇: Bash script to get its full path (use 'source' to invoke it)