【发布时间】:2012-07-04 01:05:46
【问题描述】:
我有一个在我的 OpenSuSE 机器上运行的 Bash 脚本,但是当复制到我的 Ubuntu 机器时,它不工作。脚本从文件中读取。该文件具有由空格(制表符和空格)分隔的字段。
#!/bin/bash
function test1()
{
while read LINE
do
if [[ $LINE =~ "^$" || $LINE =~ "^#.*" ]] ; then
continue;
fi
set -- $LINE
local field1=$1
local field2=$2
done < test.file
}
test1
test.file 包含:
# Field1Header Field2Header
abcdef A-2
ghijkl B-3
似乎有两个问题:
(1) $field2,带连字符的那个,是空白的
(2) 去除空白行和以# 开头的行的正则表达式不起作用
有人知道怎么回事吗?正如我所说,它在 OpenSuSE 上运行良好。
谢谢, 保罗
【问题讨论】:
-
您实际上是在 bash 中运行它吗?在 Ubuntu 上,/bin/sh 不是 bash。
-
嗨。在文件的顶部我有“#!/bin/bash”。我将为此编辑我的帖子。
-
local在函数之外不起作用。 -
它在一个函数中 - 上面是一个 sn-p
-
你在这两个系统上使用的是什么版本的 Bash?