Немедленное перенаправление вывода программы в другой каталог

Вы должны установить его в свой домашний каталог.

Для этого вы должны проверить исходный репозиторий оболочки fishна GitHub, а затем следовать инструкциям по установке в разделе «Сборка» в файле README.md, сообщая CMake, который вы хотели бы использовать в качестве альтернативного каталога установки:

git clone --depth=1 https://github.com/fish-shell/fish-shell
cd fish-shell

mkdir build
cd build

cmake -DCMAKE_INSTALL_PREFIX=$HOME/local..

make
make install

Это установит fishи связанные с ним файлы в $HOME/local. Исполняемый файл fishбудет находиться в $HOME/local/bin(, который вы можете добавить в свой $PATH).

Это, очевидно, предполагает, что все необходимые инструменты (git, make, cmakeи т. д. )доступны и что система сборки находит все необходимые зависимости 1 .

Чтобы получить определенный тег выпуска, например3.0.2(самый последний выпуск на момент написания ), используйте git clone --branch=3.0.2 --depth=1...при клонировании репозитория. Если вы не укажете тег выпуска, вы получите последнюю нестабильную разрабатываемую версию кода.

Тогда вам придется запускать обычную оболочку fishвсякий раз, когда она запускает интерактивную оболочку (, предполагая, что вы не хотите запускать fishвручную ). Если ваша оболочка bash, вы можете сделать это, добавив

if [ -x "$HOME/local/bin/fish" ]; then
    exec "$HOME/local/bin/fish"
fi

или что-то похожее на $HOME/.bashrc. Этот конкретный способ сделать это будет заменять процесс bashпроцессом fishкаждый раз при запуске интерактивной bashоболочки.

1В некоторых системах, отличных от -Linux, вам также придется вручную исправить src/fallback.cpp, чтобы включить заголовок locale.h. В противном случае этот файл может не скомпилироваться из-за того, что uselocale()не объявлен. Это подтверждение ошибки в коде ,который будет исправлен в версии 3.1.0 благодаря этому вопросу.


Другой вариант, как всегда, поговорить с администратором системы и попросить его установить его из предварительно -скомпилированного пакета. Затем вы сможете изменить свою оболочку входа в систему на fish, используя chshили любую аналогичную команду, доступную в системе.

0
06.07.2020, 17:33
1 ответ

Вы пробовали это?:

cd "${path_another}"
${path_to_program}/program "${path_to_program}/file.in"

Как сказал I0b0 в комментарии выше, программа, вероятно, ожидает, что "file.in" будет относиться к текущему каталогу (здесь${path_another}). Если он находится в том же каталоге, что и программа, то вам нужно указать путь к этому файлу.

0
18.03.2021, 23:22

Теги

Похожие вопросы