Передайте входной и выходной файлы нужного PATH в двоичный файл в bash - PullRequest
2 голосов
/ 31 октября 2011

В скрипте bash, вызываемом через shell в некотором каталоге ($ PWD), есть строка, где мне нужно вызвать исполняемый файл, расположенный в $ 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

1 Ответ

1 голос
/ 01 ноября 2011

Как описана проблема, это сделает это:

bin/executable < inputfiles/input > output/output

Если проблема действительно в том, что bin/executable создает файлы в текущем каталоге , не позволяя пользователю указать входные и выходные файлы, тогда это будет немного сложнее. Вместо этого вы, вероятно, захотите сделать следующее:

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

Это создаст символическую ссылку на inputfiles/input в каталоге output, а затем удалит ее позже. Если вы хотите устранить вероятность коллизий с файлами в каталоге output, то вам нужно создать временный каталог с чем-то вроде TMPDIR = $(mktemp -d), сделать там все, а затем скопировать его обратно в $OLDPWD/output.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...