【发布时间】:2017-09-26 16:09:03
【问题描述】:
我正在尝试将参数拆分为数组,以便我可以分配给不同的变量,但不知何故我收到错误消息说“读取 -a”不起作用。
命令:
bash-4.1$ ./sftpupstream.ksh CheckFile "aaa|bbbb|ccc|dddd"
aaa|bbbb|ccc|dddd
./sftpupstream.ksh[20]: read: -a: unknown option
Usage: read [-ACprsSv] [-d delim] [-u fd] [-t timeout] [-n count] [-N count] [var?prompt] [var ...]
代码:
RUN_MODE=$1
PARAMSTR=$2
echo $PARAMSTR
IFS="|" read -a arr <<< "$PARAMSTR"
for i in "${arr[@]}"; do
echo "$i"
done
【问题讨论】:
-
你的外壳是什么?这里没有shebang。如果您想确定它在 bash 中运行,请使用
#!/usr/bin/env bash开始您的脚本 -
(而且,错误...
.ksh?)我也没有看到 ksh shebang,而且由于 ksh 有许多 许多 不同的不兼容版本,所以你确实需要描述您使用的是哪个特定的。 -
是的,我有。抱歉没有复制整个脚本#!/bin/ksh
-
请确保您提供minimal reproducible example - 生成相同问题的最短代码。 (也就是说,复制整个脚本并不理想,但是应该测试您所做复制的内容以展示问题)。
-
顺便说一句,仔细看看
read命令,它看起来很像 ksh 而不是 bash。在 ksh 中,数组的参数是-A,而不是-a。