开发者社区> 问答> 正文

如何从bash中的第二个文件sh中读取值?

我正在设置一种解决方案,以从蜂窝路由器捕获信息。在我的脚本中,我将main.sh根据路由器型号启动其他文件(* .sh)。

因此,如果我想捕获有关Cisco路由器的信息,请执行main.sh正在执行的InformationCisco.sh。

在上一个外壳文件中,我必须读取一个值,但是

read -p
or 
  echo -n then read

不行

main.sh

./InformationCisco.sh

编辑: InformationCisco.sh

sshpass -p "$MDPssh" ssh -o StrictHostKeyChecking=no admin@"$IPaddress"  "cat /proc/net/arp" > "$MACtxt"
testMAC=$(awk 'NR==3{print $4}' $MACtxt | cut -d ' ' -f23)

if [ -z "$testMAC" ]; then

    MacAddressPlayer=$(awk 'NR==2{print $4}' $MACtxt | cut -d ' ' -f23)
    echo "MAC address Player : $MacAddressPlayer"

else

    echo "2 MAC address in ARP"
    echo "You have to find the correct MAC address for the player"
    cat $MACtxt
    read -p "Enter the right MAC address : " MacAddressPlayer
    MAC_Choice $typeMAC
    echo "MAC address Player : $MacAddressPlayer"

fi

我读取了路由器的ARP表以捕获与其连接的设备。为此,我使用sshpass来输入密码(不用担心密码不清楚,这只是一种简化)。在另一个正在运行的外壳文件中时,读取功能不会停止。

我应该更改什么,以便读取将等待输入?

展开
收起
祖安文状元 2020-01-06 15:55:08 432 0
1 条回答
写回答
取消 提交回答
  • 在您的上下文中,可能某些字符\n已经发送到该进程的stdin,并且read -p立即使用它。

    2020-01-06 15:55:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载