0
내 목표는 텍스트의 각 라인 내 텍스트 파일의 라인 수를 계산루프의 파일에서 행을 읽으려면 어떻게해야합니까?
먼저 파일 TTS하는 것입니다
#!/bin/bash
LINES=$(cat /home/mytext.txt | wc -l)
내가 루프를 정의하려면 :
let "n = $LINES"
while [ $n -ne 0 ]
TTS "the first line"
sleep 5
let "n--"
done
exit
을 그러면 다음 줄이 존재하는 한 반복문이 반복되어 다음 줄을 읽습니다. 당신이 원하는 무엇
Re : "set -e를 사용하여 스크립트를 실행하면 오류가 발생합니다.": Eh? 그건 전혀 관련이없고 내게 무관 한 것처럼 보입니다. '|| [-n "$ CUR_LINE"]'은 입력에 후행 줄 바꿈이 없으면 마지막 줄은 여전히 처리됩니다. – ruakh
++; 그러나''done '다음에 입력 리다이렉션 ('<')을 사용하여 파이프 라인을 사용하지 않고 입력을 제공하는 것이 더 나 낫습니다. 따라서 서브 쉘은'cat'을 사용하십시오. ('\'를 사용하여 명시 적으로 여기에 줄 연속 문자를 표시 할 수 있지만'|'다음에 필요하지 않음에 유의하십시오 - 현재 줄이 완전한 명령이 아닐 경우 Bash는 다음 구문을 계속 분석합니다 윤곽)). – mklement0
@ruakh : 이유에 대해 좋은 점. 'set -e'는 여기에 실제로는 관계가 없지만 _unrelated_ : "'-e' 설정은'while','until','if' 또는'elif' 예약 다음에 복합리스트를 실행할 때 무시됩니다 단어,'! '예약어로 시작하는 파이프 라인, 또는 마지막 것과 다른 AND-OR리스트의 명령. " - [POSIX 사양] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25_03). 다른 말로하면 :'set -e'는 명시 적으로 _conditionals_에서 실행 된 명령에는 적용되지 않습니다. – mklement0