![分隔变量的中断值](https://linux22.com/image/162546/%E5%88%86%E9%9A%94%E5%8F%98%E9%87%8F%E7%9A%84%E4%B8%AD%E6%96%AD%E5%80%BC.png)
我的想法是打破分离变量的一些值。以下是脚本无法根据需要获取输出的示例。对这个想法有什么建议吗?
A=12-13-14
IFS="-" read -p I J K <<<$A
echo Lin number is $I
echo Michele Number is $J
echo Gina number is $K
我的预期输出是:
Lin number is 12
Michele number is 13
Gina number is 14
答案1
您似乎可能正在使用,bash
因为您使用的是“此处字符串”( <<<
)。此外,在其他一些 shell 中,read -p
将从协进程中读取,这意味着您的代码将产生与您在注释中所说的不同的结果。所以很有可能bash
。
实用程序-p
的选项采用选项参数。此选项参数是一个字符串,在向用户询问值时将用作交互式提示。在您的代码中,该提示将是 string ,而变量和将通过标准输入(您的 string )分配数据。这就是为什么当你它时是一个空字符串。read
bash
I
J
K
read
$A
$I
echo
$ read -p 'Enter value: ' thing
Enter value: hello
$ printf '%s\n' "$thing"
hello
我假设你打算使用类似的东西-r
而不是-p
:
A=12-13-14
IFS='-' read -r I J K <<<"$A"
printf 'Lin number is %s\n' "$I"
printf 'Michele Number is %s\n' "$J"
printf 'Gina number is %s\n' "$K"