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

标签 linux file bash scripting

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

这能实现吗?

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 的符号链接(symbolic link),然后将其删除。如果您想消除与 output 目录中的文件发生冲突的可能性,那么您需要创建一个临时目录,其中包含类似 TMPDIR = $(mktemp -d) 的内容,在那里做所有事情,然后将其复制回 $OLDPWD/output

关于linux - 将输入和输出文件所需的 PATH 传递给 bash 中的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958722/

相关文章:

c - Linux下C语言生成Socket及wireshark检测frame错误

version-control - 您在源代码管理中提交和/或省略了哪些文件?

php - 通过单击按钮或链接(javascript 和/或 php?)将服务器端文件设置为输入文件类型的值

Linux Bash 脚本 - 将参数中的小写路径与实际文件系统路径匹配

c++ - G++尾递归优化失败

java - 我的 Java 程序出现 FileSystemException 错误

bash - 在 unix、bash 中合并 csv 文件

linux - 在不启动 Ubuntu 终端的情况下执行我的 Shell 和 Bash 脚本

python - 从文件中索引值

linux - ssh 隧道中的用户名@主机