Ubuntu 14.04 - Shell usando /cd

1. Ubuntu 14.04 - Shell usando /cd

Leonardo Novais
Leonardo139

(usa Ubuntu)

Enviado em 24/07/2017 - 15:00h

Olá, é a minha primeira vez usando o fórum então desculpem qualquer coisa.

Fiz um shell script em /sbin/ nomeado ligar, "/sbin/ligar.sh". Eu uso esse script em um job no crontab, o script funciona perfeitamente.

O conteúdo do script "ligar.sh" é o seguinte:
#!/bin/bash
/otserv/theforgottenserver

Ele funciona normalmente, acessa a pasta "/otserv/" e abre o executavel "theforgottenserver". O problema é que o executavel "theforgottenserver" precisa ler outros arquivos dentro da pasta "/otserv/", só que depois de abrir o "theforgottenserver" o script aparentemente saí do diretorio /otserv/, e então o theforgottenserver não consegue ler os demais arquivos localizados em /otserv/.

Pra esclarescer, quando o theforgottenserver é iniciado, ele tenta ler por exemplo ./config.lua e ./data, (que estão dentro da pasta /otserv/) mas quando o script executa o theforgottenserver, ele "esquece" que o diretorio pra ele ler os outros arquivos é /otserv/. Basicamente ele sai do /otserv/ em que foi dado o /cd na linha anterior.

Li alguns tópicos sobre isso em alguns fóruns, que instruem a usar "alias" ou /cd no script, como:

#!/bin/bash
cd /otserv
/./theforgottenserv
exec bash

Ainda não testei o script acima, poís não estou em casa, esse método realmente asseguraria que o theforgottenserver buscasse os arquivos em /otserv/? Tem outro método que recomendam?

Grato desde já.


  


2. Re: Ubuntu 14.04 - Shell usando /cd

Hector Nagao
heckjp

(usa elementary OS)

Enviado em 24/07/2017 - 15:08h

sim. você consegue navegar em diretórios nos scripts. ou pode referenciar o caminho completo de uma vez caso prefira.
É para efeitos didáticos e de testes mas se quiser comprovar criando um script que faça um cd e um ls só pra ver funcionando...


3. Re: Ubuntu 14.04 - Shell usando /cd

Leonardo Novais
Leonardo139

(usa Ubuntu)

Enviado em 24/07/2017 - 15:17h

Então usando:

#!/bin/bash
cd /otserv/
/./theforgottenserver
exec bash

Quando o theforgottenserver tentar usar "/./config.lua"
O "/./" vai corresponder a pasta "/otserv/" (que foi a aberta no cd)?
É isso que quero conseguir.




4. Re: Ubuntu 14.04 - Shell usando /cd

Hector Nagao
heckjp

(usa elementary OS)

Enviado em 24/07/2017 - 15:23h

posso estar enganado mas a primeira "/" antes do "./" acho que não é necessária. A ideia é que ele entre no diretório e execute o comando da mesma forma que você faria manualmente. Como disse outra solução é você chamar o caminho completo assim não precisaria navegar até o diretório antes de executar.


5. Re: Ubuntu 14.04 - Shell usando /cd

Leonardo Novais
Leonardo139

(usa Ubuntu)

Enviado em 24/07/2017 - 17:52h

O problema é que se eu fizer direto
!#/bin/bash
/otserv/theforgottenserver

Ele vai abrir o theforgottenserver mas o próprio theforgottenserver vai tentar ler os outros arquivos em algum diretorio que não é /otserv/, como eu disse no tópico. De toda forma vou testar utilizando cd e exec bash, se não der certo eu digo aqui.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts