Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
f9c346cf
S
ShellCheck
项目概览
Annlix
/
ShellCheck
与 Fork 源项目一致
Fork自
镜像 / koalaman / ShellCheck
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f9c346cf
编写于
8月 16, 2014
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ignore SC2033 when passing quoted function names.
上级
5f7419ca
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
10 deletion
+19
-10
ShellCheck/Analytics.hs
ShellCheck/Analytics.hs
+19
-10
未找到文件。
ShellCheck/Analytics.hs
浏览文件 @
f9c346cf
...
...
@@ -593,7 +593,7 @@ checkShebangParameters _ (T_Script id sb _) =
prop_checkShebang1
=
verifyNotTree
checkShebang
"#!/usr/bin/env bash -x
\n
echo cow"
prop_checkShebang2
=
verifyNotTree
checkShebang
"#! /bin/sh -l "
prop_checkShebang3
=
verifyTree
checkShebang
"ls -l"
checkShebang
params
(
T_Script
id
sb
_
)
=
checkShebang
params
(
T_Script
id
sb
_
)
=
[
Note
id
ErrorC
2148
"Include a shebang (#!) to specify the shell."
|
sb
==
""
]
prop_checkBashisms
=
verify
checkBashisms
"while read a; do :; done < <(a)"
...
...
@@ -1394,7 +1394,7 @@ getGlobOrLiteralString = getLiteralStringExt f
getLiteralStringExt
more
=
g
where
allInList
=
liftM
concat
.
sequence
.
map
g
allInList
=
liftM
concat
.
mapM
g
g
(
T_DoubleQuoted
_
l
)
=
allInList
l
g
(
T_DollarDoubleQuoted
_
l
)
=
allInList
l
g
(
T_NormalWord
_
l
)
=
allInList
l
...
...
@@ -1410,6 +1410,13 @@ getWordParts (T_NormalWord _ l) = concatMap getWordParts l
getWordParts
(
T_DoubleQuoted
_
l
)
=
l
getWordParts
other
=
[
other
]
getUnquotedLiteral
(
T_NormalWord
_
list
)
=
liftM
concat
$
mapM
str
list
where
str
(
T_Literal
_
s
)
=
return
s
str
_
=
Nothing
getUnquotedLiteral
_
=
Nothing
isCommand
token
str
=
isCommandMatch
token
(
\
cmd
->
cmd
==
str
||
(
'/'
:
str
)
`
isSuffixOf
`
cmd
)
isUnqualifiedCommand
token
str
=
isCommandMatch
token
(
==
str
)
...
...
@@ -2256,6 +2263,8 @@ prop_checkFunctionsUsedExternally2 =
verifyTree
checkFunctionsUsedExternally
"alias f='a'; xargs -n 1 f"
prop_checkFunctionsUsedExternally3
=
verifyNotTree
checkFunctionsUsedExternally
"f() { :; }; echo f"
prop_checkFunctionsUsedExternally4
=
verifyNotTree
checkFunctionsUsedExternally
"foo() { :; }; sudo
\"
foo
\"
"
checkFunctionsUsedExternally
params
t
=
runNodeAnalysis
checkCommand
params
t
where
...
...
@@ -2284,14 +2293,14 @@ checkFunctionsUsedExternally params t =
let
string
=
concat
$
deadSimple
arg
in
when
(
'='
`
elem
`
string
)
$
modify
((
takeWhile
(
/=
'='
)
string
,
getId
arg
)
:
)
checkArg
cmd
arg
=
case
Map
.
lookup
(
concat
$
deadSimple
arg
)
functions
of
Nothing
->
return
()
Just
id
->
do
warn
(
getId
arg
)
2033
"Shell functions can't be passed to external commands."
info
i
d
2032
$
"Use own script or sh -c '..' to run this from "
++
cmd
++
"."
checkArg
cmd
arg
=
potentially
$
do
literalArg
<-
getUnquotedLiteral
arg
-- only consider unquoted literals
definitionId
<-
Map
.
lookup
literalArg
functions
return
$
do
warn
(
getId
arg
)
2033
"Shell functions can't be passed to external commands."
info
definitionI
d
2032
$
"Use own script or sh -c '..' to run this from "
++
cmd
++
"."
prop_checkUnused0
=
verifyNotTree
checkUnusedAssignments
"var=foo; echo $var"
prop_checkUnused1
=
verifyTree
checkUnusedAssignments
"var=foo; echo $bar"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录