【问题标题】:Passing user input value from batch file to shell script将用户输入值从批处理文件传递到 shell 脚本
【发布时间】:2022-01-21 06:57:44
【问题描述】:
我有一个任务,我必须编写一个批处理脚本,在该脚本中我从用户那里获取输入并从那里调用一个 shell 脚本来传递用户输入值。知道如何实现这一点。
下面是我从用户那里获取输入并最终调用包含 curl 命令的名为 test(test.sh) 的 shell 脚本的 bat 文件
@echo off
set /p technology="Enter technology: "
set /p job_name="Enter job name : "
set /p url="Enter url : "
test.sh
【问题讨论】:
标签:
linux
windows
shell
batch-file
scripting
【解决方案1】:
由于根据您的标签,shell 脚本是 POSIX shell,而 Batch 脚本是 Windows 批处理,您可以利用 Windows 将其默认设置的变量放入环境中的优势。因此,变量应该可以在您的 shell 脚本中进行参数扩展,如 $technology 等。
【解决方案2】:
感谢您的回复。
我一直在寻找的答案是
在批处理脚本中
@echo off
set /p technology="Enter technology: "
set /p job_name="Enter job name : "
set /p url="Enter url : "
test.sh %technology% %job_name% %url%
在 shell 脚本中
echo "technology = $1"
echo "job name = $2"
echo "url = $3"
以这种方式传递值的原因是,我想传递从用户那里收到的值。
这里的 $1, $2, $3 指的是根据它们传递的参数传递的值。
在 shell 脚本中使用 curl 命令时
"url" : "'$3'"