Intereting Posts
Не вызывает ли нехватка функции ядра (XENFEAT_hvm_pirqs) проблему прерывания RedHat EC2? Почему «sudo pkill -HUP -f» nginx: мастер-процесс «возвращает код 129 и нет вывода Внешний жесткий диск не смонтирован установить гостевые дополнения для Ubuntu 7.04 Блокирует ли блок таймера systemd следующий запуск, если процесс еще не завершен? Что такое переносимость резервного копирования, удаленного резервного копирования и сетевого резервного копирования? Top c – загрузка процессора> 200% Будет ли он сбой? Последовательная связь не работает в обоих направлениях SSH-сервер не отключает сеанс, когда я выключаю машину Как я могу передать НЕТ для определенного обновления Получите очень следующее слово подстроки в строке Как я могу изменить порядок элементов панели управления Unity? Нужна помощь в обработке текстового файла с awk для соответствия формату файлов CSV Когда был открыт последний файл? Журналист сообщает о результатах 13, отрицает 5, но pam_tally2 говорит, что никаких сбоев

Помощь с простым сценарием – абсолютный, относительный путь

Я пытаюсь выполнить моноприложение, не требуя от пользователя ввода «mono filename». Это всего лишь одна строка кода:

mono ./Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9 

Он отлично работает, пока я вызываю его из правильного каталога. Но если мой текущий каталог не совсем там, где есть сценарий, он терпит неудачу, потому что ./Bin относится к текущему каталогу. Я хочу, чтобы это было относительно местоположения скрипта.

Я обнаружил, что мне удалось получить местоположение скрипта, используя

 echo dirname "$(readlink -f "$0")"/Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9 

Это правильно отображается на экране; но я не могу понять, как включить его в свой первый скрипт, чтобы моно выполнял это значение.

Я очень новичок в этом, но когда я пытаюсь найти, что делать, я продолжаю видеть учебные пособия для конкретной оболочки … но мне нужно решение, которое будет работать независимо от того, какая оболочка может быть запущена пользователем. Я знаю, что использую tcsh.

Может кто-нибудь мне помочь? Я просто хочу запустить «mono» + «dirname» $ (readlink -f «$ 0») »/ Bin / jobshop.exe $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 '

Но я не могу понять.

Попробуй это:

 #!/bin/bash path=$(dirname $(readlink -e -- "$0")) /path/to/mono "$path"/Bin/jobshop.exe "$@" 
  • Вы должны сохранить свой путь программы в переменной $ path.
  • Используйте "$@" вместо перечисления всех аргументов командной строки.

Ты мог бы сказать:

 mono $(dirname "$(readlink -f "$0")")/Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9