他のスクリプトから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

おすすめ記事