读取:指定标志对此命令无效

read: A specified flag is not valid for this command

我在 HP-UX 机器上遇到这个错误

    + IFS=; 
    /home/machine1/folder/borrado_de_logs.sh[45]: read: A specified flag is not valid for this command.

我正在使用此代码

    head -1 $rutatemporal/logfechas.log > $rutatemporal/cabecera.txt
    cabecera=`cat $rutatemporal/cabecera.txt`
    IFS=';' read -a arreglo<<EOF
    $cabecera
    EOF

在 Hp-UX 中似乎不允许 read -a read 应该使用什么参数?

cabecera.txt的内容是这样的:

2019-02-01;/home/user/deletelogs/somelog.log

可能是因为-a is not a POSIX compliant flag支持读命令。因此,您的 HP-UX 机器中可用的默认 shell 支持它也就不足为奇了。

您仍然可以使用没有 -aread 命令来拆分和存储单个变量名称,如下所示。此外,您不需要 here-doc 从输入文件中读取,而是直接在文件本身上使用 read 命令

IFS=\; read -r date path < "$rutatemporal"/cabecera.txt
echo "$date"
echo "$path"

类型

$ help read

您可以看到可用的选项及其含义。