如何从另一个脚本调用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.

相关内容