Tente isto:
#!/bin/bash
path=$(dirname $(readlink -e -- "$0"))
/path/to/mono "$path"/Bin/jobshop.exe "$@"
- Você deve salvar o caminho do seu programa na variável $ path.
- Use
"$@"
em vez de listar todos os argumentos da linha de comando.
Estou tentando executar um aplicativo mono, sem exigir que o usuário digite 'mono filename'. É apenas uma linha de código:
mono ./Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9
Funciona muito bem, desde que eu o chame do diretório correto. Mas se meu diretório atual não é exatamente onde o script está - ele falha porque o ./Bin é relativo ao diretório atual. Eu quero que seja relativo à localização do script.
Descobri que consegui obter a localização do script usando
echo dirname "$(readlink -f "$0")"/Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9
Isso é exibido corretamente na tela; mas não consigo descobrir como colocá-lo no meu primeiro script, de modo que o mono execute esse valor.
Estou usando o 'tcsh', no entanto, prefiro uma resposta independente para qualquer shell.
Eu só quero correr 'mono' + 'dirname "$ (readlink -f" $ 0 ")" / Bin / jobshop.exe $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9'
Mas não consigo acertar.
Você poderia dizer:
mono $(dirname "$(readlink -f "$0")")/Bin/jobshop.exe $1 $2 $3 $4 $5 $6 $7 $8 $9
Tags scripting