Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
koalaman
ShellCheck
提交
c9108335
S
ShellCheck
项目概览
镜像
/
koalaman
/
ShellCheck
上一次同步 大约 1 年
通知
43
Star
0
Fork
1
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
c9108335
编写于
3月 19, 2016
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Warn about timing pipelines and compound commands in sh/dash.
上级
2957fb64
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
4 deletion
+32
-4
ShellCheck/Analytics.hs
ShellCheck/Analytics.hs
+30
-2
quicktest
quicktest
+2
-2
未找到文件。
ShellCheck/Analytics.hs
浏览文件 @
c9108335
...
...
@@ -73,11 +73,13 @@ checksFor Sh = [
checkBashisms
,
checkTimeParameters
,
checkForDecimals
,
checkTimedCommand
]
checksFor
Dash
=
[
checkBashisms
,
checkForDecimals
,
checkLocalScope
,
checkTimedCommand
]
checksFor
Ksh
=
[
checkEchoSed
...
...
@@ -1107,8 +1109,8 @@ checkStderrRedirect params redir@(T_Redirecting _ [
checkStderrRedirect
_
_
=
return
()
lt
x
=
trace
(
"
FAILURE
"
++
show
x
)
x
ltt
t
=
trace
(
"
FAILURE
"
++
show
t
)
lt
x
=
trace
(
"
Tracing
"
++
show
x
)
x
ltt
t
=
trace
(
"
Tracing
"
++
show
t
)
prop_checkSingleQuotedVariables
=
verify
checkSingleQuotedVariables
"echo '$foo'"
...
...
@@ -1863,6 +1865,32 @@ checkTimeParameters _ = checkUnqualifiedCommand "time" f where
info
(
getId
cmd
)
2023
"The shell may override 'time' as seen in man time(1). Use 'command time ..' for that one."
f
_
_
=
return
()
prop_checkTimedCommand1
=
verify
checkTimedCommand
"time -p foo | bar"
prop_checkTimedCommand2
=
verify
checkTimedCommand
"time ( foo; bar; )"
prop_checkTimedCommand3
=
verifyNot
checkTimedCommand
"time sleep 1"
checkTimedCommand
_
=
checkUnqualifiedCommand
"time"
f
where
f
c
args
@
(
_
:
_
)
=
do
let
cmd
=
last
args
when
(
isPiped
cmd
)
$
warn
(
getId
c
)
2176
"'time' is undefined for pipelines. time single stage or sh -c instead."
when
(
isSimple
cmd
==
Just
False
)
$
warn
(
getId
cmd
)
2177
"'time' is undefined for compound commands, time sh -c instead."
f
_
_
=
return
()
isPiped
cmd
=
case
cmd
of
T_Pipeline
_
_
(
_
:
_
:
_
)
->
True
_
->
False
getCommand
cmd
=
case
cmd
of
T_Pipeline
_
_
((
T_Redirecting
_
_
a
)
:
_
)
->
return
a
_
->
fail
""
isSimple
cmd
=
do
innerCommand
<-
getCommand
cmd
case
innerCommand
of
T_SimpleCommand
{}
->
return
True
_
->
return
False
prop_checkTestRedirects1
=
verify
checkTestRedirects
"test 3 > 1"
prop_checkTestRedirects2
=
verifyNot
checkTestRedirects
"test 3
\\
> 1"
prop_checkTestRedirects3
=
verify
checkTestRedirects
"/usr/bin/test $var > $foo"
...
...
quicktest
浏览文件 @
c9108335
...
...
@@ -4,12 +4,12 @@
# 'cabal test' remains the source of truth.
(
var
=
$(
echo
'liftM and $ sequence [ShellCheck.Analytics.runTests, ShellCheck.Parser.runTests, ShellCheck.Checker.runTests]'
| cabal repl |
tee
/dev/stderr
)
var
=
$(
echo
'liftM and $ sequence [ShellCheck.Analytics.runTests, ShellCheck.Parser.runTests, ShellCheck.Checker.runTests]'
| cabal repl
2>&1
|
tee
/dev/stderr
)
if
[[
$var
==
*
$'
\n
True'
*
]]
then
exit
0
else
grep
-C
3
"Fail
"
<<<
"
$var
"
grep
-C
3
-e
"Fail"
-e
"Tracing
"
<<<
"
$var
"
exit
1
fi
)
2>&1
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录