分隔变量的中断值

分隔变量的中断值

我的想法是打破分离变量的一些值。以下是脚本无法根据需要获取输出的示例。对这个想法有什么建议吗?

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 )分配数据。这就是为什么当你它时是一个空字符串。readbashIJKread$A$Iecho

$ 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"

相关内容