bash中的read命令在与不同用户的操作中不等待
我通过bash B中的不同用户调用bash A,就像这样,我想一直保持在“*”线上,直到用户进入“退出”bash中的read命令在与不同用户的操作中不等待,bash,shell,Bash,Shell,我通过bash B中的不同用户调用bash A,就像这样,我想一直保持在“*”线上,直到用户进入“退出” #bash B su test使用if语句将不会继续检查输入是否为“exit”,它只会检查一次 您可以使用直到循环来确保用户输入为“退出” 您可以使用$查找发送到后台的最新命令的进程 background command & pid=$! until [[ $LINE == exit ]]; do read LINE done && { kill -9 $pi
#bash B
su test使用if
语句将不会继续检查输入是否为“exit”,它只会检查一次
您可以使用直到循环来确保用户输入为“退出”
您可以使用$查找发送到后台的最新命令的进程代码>
background command &
pid=$!
until [[ $LINE == exit ]]; do
read LINE
done && { kill -9 $pid; exit; }
您正在从here文档重定向su
的标准输入。su
运行的命令将从su
继承其标准输入,因此它也是here文档,而不是终端。由于su
在读取要运行的命令时会消耗整个here文档,因此bashA.sh
无法读取,因此read
命令会立即失败,而不是等待输入
如果需要解决方法,您需要发布更多关于您实际尝试执行的操作的详细信息。如果我在没有su测试的情况下运行bashA.sh
background command &
pid=$!
until [[ $LINE == exit ]]; do
read LINE
done && { kill -9 $pid; exit; }