Parâmetros da linha de comandos no script bash não reconhecido

1

Eu uso o Debian (Raspbian) Wheezy. Se esta linha de comando funciona bem:

smsd -c sms/out -i 60 -0 -f sms/smsd.log

e esse alias também funciona bem:

bsmsd='smsd -c sms/out -i 60 -0 -f sms/smsd.log'

então por que essa mesma linha de comando em um script bash executável inicia o comando smsd , mas não vê nenhum dos parâmetros que estou especificando? Este é o script:

#!/bin/bash

smsd -c sms/out -f /home/pi/sms/smsd.log -i 60 -0 -v

Eu tentei redirecionar e canalizar, sem sucesso.

Estou invocando o script (chamado ssmsd) na linha de comando da seguinte forma:

./ssmsd

Depois disso, esta é a saída de ps -fC smsd :

UID        PID  PPID  C STIME TTY          TIME CMD

Edit: Eu sei que ele não reconhece os parâmetros, porque me diz que não especifiquei um diretório de spooling. Mas eu fiz : -c sms/out . Quando chamado do script, ele fornece o número da versão e o autor e sai.

Talvez eu deva acrescentar: chama a si mesmo de um daemon, mas não é um daemon bem comportado . Você não pode smsd start|stop|restart e não é executado em segundo plano. Então, se eu chamá-lo de uma linha de comando (ou com esse alias) e, em seguida, iniciar outro terminal e fazer ps -fC smsd , recebo:

UID        PID  PPID  C STIME TTY          TIME CMD
pi        2860  2621  0 17:49 pts/0    00:00:00 smsd -c xxxxxxx -i 60 -0 -f sms/smsd.log
    
por RolfBly 18.08.2014 / 17:22

1 resposta

1

Isso parece óbvio, você não está usando os mesmos argumentos.

Se este for gnokii-smsd e você especificar -v , assim como você está especificando na versão do script, ele deve imprimir a versão e sair, exatamente como você disse.

Por que você não tentou com os mesmos argumentos exatos quando estava no modo shell do que no modo de script?

    
por 18.08.2014 / 18:18