【发布时间】:2021-07-11 18:01:36
【问题描述】:
defineColumns() {
shift
local dirfun=${1:-"/var/log/was/dial"}
local basefun=${2:-"$logdir/party_info.$(date +%y%m%d%H%M%S)"}
touch $logbase_bcdb
info $dirfun $basefun
# Run steps sequentially
loadData
}
我正在编写一个 shell 脚本代码,其中我编写了多个函数。上面的函数抛出错误为: 意外标记 `{ 附近的语法错误 代码有什么问题?
【问题讨论】:
-
检查您的代码是否有不可打印的字符:
cat -A file -
我没找到你!能详细点吗?
-
@Aviator 至少在这里发布,您的代码有一堆零宽度空格字符。这些通常是不可见的,但它们会弄乱 shell 语法。就个人而言,我建议使用
LC_ALL=C cat -vet filename使文件中所有通常不可见的内容可见——通常,唯一的变化是每行末尾的$(表示换行符标记行尾) ,但在这种情况下,我到处都能看到M-bM-^@M-^K(这是用于零宽度空间的 UTF-8 代码的表示)。 -
我看到很多 M-bM-^@M-^K 但如何删除它们?
-
stackoverflow.com/a/43108392/8577085 从文件中删除所有不可打印的字符