繁体   English   中英

使用另一个 shell 脚本编写 shell 脚本

[英]Writing shell script using another shell script

我正在尝试自动运行一个 shell 脚本,该脚本将在其执行的各个点接受一些用户输入。 我脑海中的基本逻辑复制如下,但这仅适用于一个输入。 我想递归运行它,直到原始脚本完成执行后收到 shell 提示。 我递归说是因为,提示输入的问题和输入本身总是一样的。

#!/usr/bin/expect
spawn new.sh $1
expect  "Please enter input:"
send "my_input"

分享任何捷径/简单方法来实现这一点将不胜感激。

您不需要expect这样做 - read可以从管道和用户输入中读取,因此您可以通过管道将输入传递给您的脚本。 示例脚本:

#!/bin/bash
read -p "Please enter input: " input
echo "Input: $input"

运行脚本会正常提示输入,但如果您通过管道输入它:

$ echo "Hello" | sh my_script.sh
Input: Hello

你说你的输入总是相同的 - 如果是这样,那么你可以使用yes (它只是一遍又一遍地打印给定的字符串)来重复传递你的脚本输入:

yes "My input" | sh my_script.sh

这将运行 my_script.sh,脚本中的任何read命令都将读取“我的输入”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM