2

在Sh

[SunOs] /opt # sh
[\h] \w \$ read -a array <<< "1 2 3";echo ${array[1]}
syntax error: `<' unexpected

在重击中

[SunOs] ~ # bash
[SunOs] ~ # read -a array <<< "1 2 3";echo ${array[1]}
2

为什么“sh”外壳中出现错误,我使用的是 SunOS 5.10 Generic_147440-10 sun4v sparc sun4v

4

2 回答 2

3

不支持 Herestrings sh

当您尝试使用sh.

于 2014-01-22T10:41:08.273 回答
1

作为一种解决方法,您可以使用内置的 POSIX 命令set将您的参数分别分配给位置参数, $1, $2... 或位置参数数组$@

{
IFS="`printf ' \n\t'`"
export IFS
printf '%s' "$IFS" | od -b
set -- `printf '%s' "1 2 3"`
echo "$0"
echo "$1"
echo "$2"
echo "$3"
echo "$@"
}
于 2014-01-22T13:40:25.710 回答