사용자 입력으로 순차 프로세스 실행 [닫기]

사용자 입력으로 순차 프로세스 실행 [닫기]
#!/usr/bin/env bash
tt=0
one(){
    echo "Please enter some input: "
    read input_variable
    echo "You entered: $input_variable"
    tt=$input_variable
}
tho(){
    if $tt >0; then
    {
        for i in {1..100000}
        do
          echo $i $i
          sleep 2s
        done
    }
    fi
}
(one ; tho) &

이것은 제가 하고 싶은 일의 작은 예일 뿐입니다. 사용자가 입력을 제공하고 tho()실행이 시작되는 데 시간이 걸립니다 . tho()사용자가 입력 변수를 제공한 후(아마 2일 후) 실행하고 싶습니다 . 어떤 제안이라도 좋을 것입니다!

답변1

사용자 입력을 읽는 부분은 포그라운드에서 실행되어야 합니다. 포그라운드 프로세스만 터미널에서 데이터를 읽을 수 있습니다.

if 조건의 구문은 의미가 없습니다. $tt >0이름이 변수¹에 있는 명령을 실행 tt하고 해당 출력을 이름이 지정된 명령으로 리디렉션합니다 0. 숫자를 비교하려면 [ … ]조건식 구문이나 ((…))산술식 구문을 사용합니다.

if 문의 중괄호는 쓸모가 없습니다. then … fi동일한 그룹이 이미 생성되었습니다.

{1..100000}100,000 단어로 확장하여 하나씩 처리합니다. 루프를 100,000번 실행하려면 루프 카운터를 사용하십시오.

2초마다 한 줄을 인쇄하는 것은 나에게는 이해가 되지 않지만, 당신이 무엇을 하고 싶은지 모르기 때문에 그대로 두겠습니다.

#!/bin/bash
one () {
    echo "Please enter some input: "
    read tt
    echo "You entered: $tt"
}
tho () {
    if [ "$tt" -gt 0 ]; then
        for ((i=0; i<=100000; i++)); do
          echo $i $i
          sleep 2s
        done
    fi
}
one
tho

tho이 섹션을 백그라운드에서 실행 하려면 &나중에 추가하세요 tho.

아마도 .

관련 정보