如何以非交互方式在Shell脚本中传入多个变量作为输入
解决方法
有三种常见方式可以实现给该交互式脚本非交互传入两个变量:
方法1:带换行符的here字符串
利用bash的$'\n'插入换行,让两个变量分别对应脚本两次read的输入行:
./input.sh <<< "$username"$'\n'"$password"
方法2:管道传递多行输入
用echo -e解析换行转义字符,将两个变量分两行输出后通过管道传给脚本:
echo -e "$username\n$password" | ./input.sh
若环境中echo不支持转义,可改用printf确保兼容性:
printf "%s\n%s\n" "$username" "$password" | ./input.sh
方法3:here文档
通过here文档标记(EOF)直接传入两行内容,变量会自动展开:
./input.sh << EOF $username $password EOF
内容的提问来源于stack exchange,提问作者its008
相关产品推荐
相关产品推荐

