Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
a89aee1a
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,发现更多精彩内容 >>
提交
a89aee1a
编写于
11月 17, 2013
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Assume variables have spaces/globs by default
上级
4853dce3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
8 deletion
+21
-8
ShellCheck/Analytics.hs
ShellCheck/Analytics.hs
+14
-8
ShellCheck/Data.hs
ShellCheck/Data.hs
+7
-0
未找到文件。
ShellCheck/Analytics.hs
浏览文件 @
a89aee1a
...
...
@@ -313,7 +313,7 @@ checkUuoc _ = return ()
prop_checkNeedlessCommands
=
verify
checkNeedlessCommands
"foo=$(expr 3 + 2)"
prop_checkNeedlessCommands2
=
verify
checkNeedlessCommands
"foo=`echo
\\
`expr 3 + 2
\\
``"
prop_checkNeedlessCommands3
=
verifyNot
checkNeedlessCommands
"foo=$(expr foo : regex)"
checkNeedlessCommands
cmd
@
(
T_SimpleCommand
id
_
(
w
:
_
))
|
checkNeedlessCommands
cmd
@
(
T_SimpleCommand
id
_
(
w
:
_
))
|
w
`
isCommand
`
"expr"
&&
(
not
$
":"
`
elem
`
deadSimple
cmd
)
=
style
id
2003
"expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]]."
checkNeedlessCommands
_
=
return
()
...
...
@@ -1550,13 +1550,11 @@ prop_checkSpacefulnessJ = verifyFull checkSpacefulness "echo $PWD"
checkSpacefulness
t
=
doVariableFlowAnalysis
readF
writeF
(
Map
.
fromList
defaults
)
t
where
defaults
=
let
values
=
[
"PWD"
]
++
(
map
show
[
0
..
10
])
in
zip
values
(
repeat
True
)
defaults
=
zip
variablesWithoutSpaces
(
repeat
False
)
hasSpaces
name
=
do
map
<-
get
return
$
Map
.
findWithDefault
Fals
e
name
map
return
$
Map
.
findWithDefault
Tru
e
name
map
setSpaces
name
bool
=
do
modify
$
Map
.
insert
name
bool
...
...
@@ -1564,6 +1562,8 @@ checkSpacefulness t =
readF
_
token
name
=
do
spaced
<-
hasSpaces
name
if
spaced
&&
(
not
$
"@"
`
isPrefixOf
`
name
)
-- There's another warning for this
&&
(
not
$
isCounting
token
)
&&
(
not
$
inUnquotableContext
parents
token
)
&&
(
not
$
usedAsCommandName
parents
token
)
then
return
[(
getId
token
,
Note
InfoC
2086
warning
)]
...
...
@@ -1578,13 +1578,19 @@ checkSpacefulness t =
writeF
_
_
name
(
DataFrom
vals
)
=
do
map
<-
get
setSpaces
name
(
isSpacefulWord
(
\
x
->
Map
.
findWithDefault
Fals
e
x
map
)
vals
)
(
isSpacefulWord
(
\
x
->
Map
.
findWithDefault
Tru
e
x
map
)
vals
)
return
[]
parents
=
getParentTree
t
isCounting
(
T_DollarBraced
id
token
)
=
case
concat
$
deadSimple
token
of
'#'
:
_
->
True
_
->
False
isCounting
_
=
False
isSpacefulWord
::
(
String
->
Bool
)
->
[
Token
]
->
Bool
isSpacefulWord
f
words
=
any
(
isSpaceful
f
)
words
isSpacefulWord
f
words
=
any
(
isSpaceful
f
)
words
isSpaceful
::
(
String
->
Bool
)
->
Token
->
Bool
isSpaceful
spacefulF
x
=
case
x
of
...
...
ShellCheck/Data.hs
浏览文件 @
a89aee1a
...
...
@@ -40,6 +40,13 @@ internalVariables = [
"ZLE_REMOVE_SUFFIX_CHARS"
,
"ZLE_SPACE_SUFFIX_CHARS"
]
variablesWithoutSpaces
=
[
"$"
,
"-"
,
"?"
,
"!"
,
"BASHPID"
,
"BASH_ARGC"
,
"BASH_LINENO"
,
"BASH_SUBSHELL"
,
"EUID"
,
"LINENO"
,
"OPTIND"
,
"PPID"
,
"PWD"
,
"RANDOM"
,
"SECONDS"
,
"SHELLOPTS"
,
"SHLVL"
,
"UID"
,
"COLUMNS"
,
"HISTFILESIZE"
,
"HISTSIZE"
,
"LINES"
]
commonCommands
=
[
"admin"
,
"alias"
,
"ar"
,
"asa"
,
"at"
,
"awk"
,
"basename"
,
"batch"
,
"bc"
,
"bg"
,
"break"
,
"c99"
,
"cal"
,
"cat"
,
"cd"
,
"cflow"
,
"chgrp"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录