다음 내용으로 ShellScript.sh라는 스크립트를 만들었습니다.
#!/bin/sh
# Shell script
function help {
echo ""
echo "./ShellScript.sh {start | stat}"
echo ""
echo "These are some commands:"
echo ""
# Start command
echo "start"
echo "This starts the process"
echo ""
# Stat command
echo "stat"
echo " abcxyz"
echo ""
}
그러나 명령줄에 "./ShellScript.sh help"를 입력하면 아무 일도 일어나지 않습니다. 나는 하루 동안 이 문제를 해결하려고 노력해 왔으며 작은 것을 놓치고 있다고 확신하지만 그것이 무엇인지 모르겠습니다!
답변1
최종 목표가 무엇인지는 확실하지 않지만 ./ShellScript.sh help
일단 전화해 보세요.범위스크립트에 대한 "도움말"; Arkadiusz Drabczyk이 언급했듯이 ShellScript.sh가 수행하는 모든 작업은 함수를 설정한 다음 종료하는 것입니다.
프로세스를 시작하거나 계산하기 위해 옵션 기반 스크립트를 작성하는 것처럼 보입니다. 이 경우 인수를 구문 분석하고 함수를 호출하려면 "기본" 수준 코드가 필요합니다.
예를 들어 ShellScript.sh 끝에 다음을 추가합니다.
case "$1" in
start)
echo "This starts the process"
;;
stat)
echo "stat"
echo " abcxyz"
;;
help)
help
;;
*)
echo "usage: $0 start|stat"
;;
esac
제안하자면, "stat"(인간에게)는 "start"와 매우 유사합니다. "status"를 고려해보세요.
답변2
함수를 정의했지만 실제로는 아무 작업도 수행하지 않았습니다. 당신은해야합니다부르다스크립트에서 기능합니다. 이것이 보다 일반적인 접근 방식이고 스크립트의 인수를 기반으로 여러 함수 중 하나를 호출하려는 경우 다음과 같이 설정하면 됩니다(그 중 일부만 보여드렸고 끝에 "$"를 추가했습니다).
# Stat command
echo "stat"
echo " abcxyz"
echo ""
}
$1