BASH脚本中的语法错误 - readarray + cut命令

时间:2014-05-30 16:06:31

标签: arrays bash csv cut

我正在尝试将逗号分隔文件解析为几个数组。

第一个数组将包含文件第1列的值 第二个数组将包含文件第3列的值

我正在使用readarry和cut来尝试完成此任务,但我正在解决语法错误:

readarray -t VLANs < <( cut -d, -f1 /logs/repository/vlansList.csv )
readarray -t VLANs < <(cut -d, -f1 $1)

上述两种方法都不起作用。

错误是:

./ios2NX.sh: line 59: syntax error near unexpected token `<'
./ios2NX.sh: line 59: `         readarray -t VLANs < <( cut -d, -f1 /logs/repository/vlansList.csv)'

有趣的是,如果我用bash - [script_name]

测试脚本,则不会显示错误

我尝试将路径放在引号和双引号中,引发了同样的错误。

你们知道我在这里缺少什么,或者可以提出比readarray + cut更好的方法吗? (我的文件中的行包含空格)

提前致谢!

1 个答案:

答案 0 :(得分:3)

问题在于您正在撰写bash但正在使用sh投放。

如果你的shebang是#!/bin/sh,请将其替换为#!/bin/bash

如果您正在运行sh yourfile,请改为运行bash yourfile