![BASH는 중첩된 문/루프/함수를 남겨두려고 합니다.](https://linux55.com/image/100493/BASH%EB%8A%94%20%EC%A4%91%EC%B2%A9%EB%90%9C%20%EB%AC%B8%2F%EB%A3%A8%ED%94%84%2F%ED%95%A8%EC%88%98%EB%A5%BC%20%EB%82%A8%EA%B2%A8%EB%91%90%EB%A0%A4%EA%B3%A0%20%ED%95%A9%EB%8B%88%EB%8B%A4..png)
bash를 사용하여 대학에서 처음으로 스크립트를 작성하는 방법을 배우고 있지만 중첩된 문/루프/함수에 문제가 있습니다.
변수 값이 true인 경우 해당 if 문에서 중단/반환한 다음 함수의 일부인 포함된 while 루프에서도 중단되어 종료하려는 if 문을 작성하려고 합니다. if 문의 변수가 true입니다.)
나는 return N, break N, 그리고 종료를 시도했습니다. (지금은 스크립트가 끝나는 것으로 알고 있습니다.) 다음은 스크립트 설정을 시도한 방법에 대한 예입니다.
#!/bin/bash
function1()
{
while read -p "Enter a value: " input
do
if [ $input="X" ]
then
return 2
fi
# Rest of while statement
done
# End of while loop.
}
# End of function.
function1
# Call function1.
# Rest of script
이것이 어떻게 작동하는지 이해할 수 있는 사람이 있나요? (이 질문의 충격적인 형식에 대해 사과드립니다. 저는 이 사이트를 처음 접했고 실제로 앉아서 그것이 어떻게 작동하는지 알아보는 데 시간을 들이지 않았습니다. 죄송합니다.)
답변1
이것이 당신이 원하는 것입니다:
#!/bin/bash
function1() {
while read -p "Enter a value: " input; do
if [ $input = "X" ]; then
return 2
fi
# Rest of while statement
done
# End of while loop.
}
# End of function.
function1 # Call function1. # Rest of script
"=" 앞뒤에 공백을 추가하고 조건으로 간단한 []를 사용하는 것만큼 간단합니다.
답변2
if [ $input="X" ]
해야 한다:
if [[ $input="X" ]]