다른 스크립트에서 bash 스크립트를 호출하는 방법은 무엇입니까?

다른 스크립트에서 bash 스크립트를 호출하는 방법은 무엇입니까?

비슷한 질문이 많다는 것을 알고 있지만 답변을 찾을 수 없습니다.

다른 스크립트를 호출하기 위해 소스 스크립트의 이 지점에 도달하기 위한 몇 가지 if 및 검사가 있습니다.

source ./call.sh

대상 스크립트에서 사용자로부터 사용자 이름을 얻고 싶습니다.

#!/bin/bash
passDir="/etc/passwd"
while true
    do
        #propmt for username
        read -p "Enter username : " username
        egrep "^$username" $passDir >/dev/null
        if [ $? -eq 0 ]; then
            echo "$username exists!"

        else
            userName=$username
            break
        fi
    done                   

하지만 내가 아무 것도 입력할 때까지 기다리지는 않습니다. Ctrl+CI를 누르지 않는 한 루프에 들어가 인쇄가 존재합니다. 누군가 이 작업을 수행하는 방법에 대한 조언을 해줄 수 있다면 매우 감사하겠습니다. 내 대상 스크립트에는 사용자로부터 입력을 받으라는 메시지가 많이 있습니다. 대상 스크립트만 실행하면 제대로 작동합니다.

답변1

추가 스크립트를 작성하고 source command사용해야 하는 스크립트를 호출하고 상호 작용해야 합니다 expect interpreter. 예를 들면 다음과 같습니다.

#!/usr/bin/env expect 
send 'username\r'

물론 스크립트에 무언가를 전달하고 사용해야 합니다 return status.

관련 정보