linux - 依次传递两个变量
问题描述
在Unix shell
中,git clone <url>
将提示用户输入用户名,然后输入密码。
我定义了$username
变量$password
。
我怎么能按顺序将两个变量传递给命令。
我试过
echo $password | echo $username | git clone <url>
了,没用
解决方案
有几种方法可以做到这一点。您可能应该做的,因为它更安全,是使用脚本不必包含和传递用户名和密码的配置。例如,您可以设置 ssh,或者您可以使用凭证助手。(详细信息取决于您的环境,因此我建议您搜索现有问题和答案:如何设置这些问题。)
如果您仍然希望脚本传递值,您基本上有两种选择:您可以使用 git 命令的形式在命令行上获取值(请参阅brokenfoot 的答案),或者您可以在 STDIN 上传递值(这是您正在尝试的方法,但与您尝试的方式不同)。
使用 时|
,您将左侧命令的“标准输出”发送到右侧命令的“标准输入”。因此,当您像显示的那样链接命令时,第一个echo
是将输出发送到第二个echo
- 它会忽略它。那不是你想要的。
您将需要一个输出用户名、行尾字符、密码和另一个行尾字符的命令。用 echo 做这件事并不容易(至少,不可移植)。你可以做类似的事情
git clone *url* <<EOF
$username
$password
EOF
推荐阅读
- javascript - IMAGE COMPRESSOR Script [注意:只有变量应该通过引用传递]
- r - 为什么在 R 中使用 left_join() 时会出现“无效的 'times' 参数”错误?
- sql - SQL查询获取其他列中具有差异值的公共列
- c# - SQL CLR标量UDF中的DES解密不起作用
- java - IntelliJ 在运行配置部分显示大写
- javascript - FlatList numColumns 没有显示想要的结果
- java - 与 AND 运算符不同,按位运算符 XOR 和 OR 对负数的工作方式是否不同
- android - 无法通过适用于 Android 11 的 Mediastore API 录制超过 2 分钟的视频
- amazon-s3 - Fluentd 在 S3 输出路径或文件名中使用日志文件名
- wso2 - WSO2 APIM 和 EI 是否支持 API 删除现有租户?