Bash 스크립트의 명령줄 인수가 인식되지 않습니다.

Bash 스크립트의 명령줄 인수가 인식되지 않습니다.

저는 Debian(Raspbian) Wheezy를 사용합니다. 이 명령줄이 제대로 작동하는 경우:

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

이 별칭도 잘 작동합니다.

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

그렇다면 실행 가능한 bash 스크립트의 동일한 명령줄이 명령을 실행 smsd하지만 내가 지정한 인수가 표시되지 않는 이유는 무엇입니까? 스크립트는 다음과 같습니다.

#!/bin/bash

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

리디렉션 및 파이핑을 시도했지만 아무 소용이 없습니다.

다음과 같이 명령줄에서 스크립트(ssmsd라고 함)를 호출합니다.

./ssmsd

그 후의 출력은 다음과 같습니다 ps -fC smsd.

UID        PID  PPID  C STIME TTY          TIME CMD

편집: 스풀 디렉터리가 지정되지 않았음을 알려주기 때문에 매개변수를 인식하지 못하는 것으로 알고 있습니다. 하지만 나는했다: -c sms/out. 스크립트에서 호출되면 버전 번호와 작성자를 제공한 다음 종료됩니다.

아마도 다음을 추가해야 할 것 같습니다.자신에게 전화해데몬이지만 데몬은 아닙니다.좋은 성능악마. 그렇게 할 수 없으며 smsd start|stop|restart백그라운드에서 실행되지 않습니다. 따라서 명령줄에서 호출하거나 해당 별칭을 사용하여 다른 터미널을 시작하고 실행하면 다음과 같은 결과가 ps -fC smsd나타납니다.

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

답변1

동일한 매개변수를 사용하지 않는 것이 오히려 분명해 보입니다.

이것이이고 스크립트 버전에 지정한 대로 gnokii-smsd를 지정하면 -v지시한 대로 버전을 인쇄하고 종료해야 합니다.

왜 시도해보지 않았어?정밀한쉘 모드의 매개변수는 스크립트 모드의 매개변수와 동일합니까?

관련 정보