【发布时间】:2018-09-15 16:59:15
【问题描述】:
我有一个简单的 Bash 脚本,它接受输入并使用该输入打印几行
fortinetTest.sh
read -p "Enter SSC IP: $ip " ip && ip=${ip:-1.1.1.1}
printf "\n"
#check IP validation
if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "SSC IP: $ip"
printf "\n"
else
echo "Enter a valid SSC IP address. Ex. 1.1.1.1"
exit
fi
我尝试将它们上传到我的服务器,然后尝试通过curl 运行它
我不确定为什么我使用 cURL/wget 时输入提示永远不会启动。
我错过了什么吗?
【问题讨论】:
-
一定要提示吗?似乎 url 参数会更简单。
-
通过 wget 使用的 curl 不是允许提示/响应的终端仿真器,它是数据的获取器(一种方式)。您需要通过 curl 命令添加 SSC IP 输入(即
curl ..sh < 1234 | bash) -
@PrestonM :我不介意使用您的建议,听起来比我现在尝试做的要好,但我不确定如何调整我的代码以使用从 URL 参数读取.想让我从几行开始?
-
@RandyCasburn,你介意回答吗?你的建议可能适用于我正在尝试做的事情。
-
我首先不建议直接从
curl运行脚本。良好的安全性要求您首先下载脚本,检查它以确保它是您期望的脚本,然后然后执行它。curl ... > tmp.sh; <look at it>; bash tmp.sh.