가변 길이에 따라 다른 명령을 호출하는 쉘 스크립트를 작성하고 싶습니다. 그러나 나는 아직 그것을 이해하지 못했습니다.
작동하지 않는 스크립트는 다음과 같습니다.
for i in n5 n25
if ${#i} == 2;
then
do
python two.py n5
elif ${#i} == 3;
do
python three.py n25
fi
쉘 스크립트에서 가변 길이를 계산하는 방법은 무엇입니까?
답변1
다음을 수행할 수 있습니다.
for i in n5 n25
do
if [ ${#i} -eq 2 ]; then
python two.py n5
elif [ ${#i} -eq 3 ]; then
python three.py n25
fi
done
알아채다:
for
.do ... done
if
.then ... [elif; then] ... [else; then] ... fi
- 정수 비교에는 (문자열의 경우)
-eq
대신 (같음)이 필요하며 괄호( 등)=
안에 작성됩니다 .if [ "$var" -eq 2 ]