ShellCheck
1.安装 ShellCheck
ShellCheck 是一个用于静态分析 Shell 脚本的工具,它能够检测出脚本中的语法错误、潜在的问题和最佳实践违规,并提供相应的建议和修复方法。它支持包括 Bash、sh、dash、ksh 等多种 Shell 方言。
[root@moss-test-service-configure-x-9fb68fc98-mw7qh /]# yum install -y ShellCheck
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ShellCheck.x86_64 0:0.3.8-1.el7 will be installed
--> Processing Dependency: ghc(unix-2.6.0.1-4f219f792083f70ec440ce406f12ce57) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(transformers-0.3.0.0-ff2bb6ac67241ebb987351a3db564af0) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(time-1.4.0.1-10dc4804a19dc0000fab79908f1a9f50) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(text-0.11.3.1-e38859e86485c167fa7c9441789e7607) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(syb-0.4.0-c48d52f3188b986ddaa9dd9ae40072f8) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(regex-tdfa-1.1.8-a4710d62e3e3140fab46c3ea204d8204) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(regex-base-0.93.2-f9403610b59f8cc474edd63a82806d18) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(pretty-1.1.1.0-66181c695e6a2e173ba2088cf55cc396) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(parsec-3.1.3-6c6e21cb4ed4ef9d58fdf442940b152e) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(old-locale-1.0.0.5-6729cb9d9cc62d150655de8fc5401b91) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(mtl-2.1.2-94c72af955e94b8d7b2f359dadd0cb62) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(json-0.7-f33acd6f673691de79a840401bdfebca) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(integer-gmp-0.5.0.0-2f15426f5b53fe4c6490832f9b20d8d7) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(ghc-prim-0.3.0.0-d5221a8c8a269b66ab9a07bdc23317dd) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(filepath-1.3.0.1-b12cbe18566fe1532a1fda4c85e31cbe) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(directory-1.2.0.1-91a788fd88acd7f149f0f10f5f1e23f2) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(deepseq-1.3.0.1-5cc4cd89bdc2e8f6db1833d95ec36926) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(containers-0.5.0.0-ab1dae9a94cd3cc84e7b2805636ebfa2) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(bytestring-0.10.0.2-4f93248f75667c2c3321a7a6761b576f) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(base-4.6.0.1-8aa5d403c45ea59dcd2c39f123e27d57) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(array-0.4.0.1-3b78425c10ff2dad7acf7e8c8ae014c3) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: ghc(ShellCheck-0.3.8-d1a7aa838c58150efd69eb3b9c413904) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSunix-2.6.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHStransformers-0.3.0.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHStime-1.4.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHStext-0.11.3.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSsyb-0.4.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSrts-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSregex-tdfa-1.1.8-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSregex-base-0.93.2-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSpretty-1.1.1.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSparsec-3.1.3-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSold-locale-1.0.0.5-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSmtl-2.1.2-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSjson-0.7-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSinteger-gmp-0.5.0.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSghc-prim-0.3.0.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSfilepath-1.3.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSdirectory-1.2.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSdeepseq-1.3.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHScontainers-0.5.0.0-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSbytestring-0.10.0.2-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSbase-4.6.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSarray-0.4.0.1-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Processing Dependency: libHSShellCheck-0.3.8-ghc7.6.3.so()(64bit) for package: ShellCheck-0.3.8-1.el7.x86_64
--> Running transaction check
---> Package ghc-ShellCheck.x86_64 0:0.3.8-1.el7 will be installed
---> Package ghc-array.x86_64 0:0.4.0.1-26.4.el7 will be installed
---> Package ghc-base.x86_64 0:4.6.0.1-26.4.el7 will be installed
---> Package ghc-bytestring.x86_64 0:0.10.0.2-26.4.el7 will be installed
---> Package ghc-containers.x86_64 0:0.5.0.0-26.4.el7 will be installed
---> Package ghc-deepseq.x86_64 0:1.3.0.1-26.4.el7 will be installed
---> Package ghc-directory.x86_64 0:1.2.0.1-26.4.el7 will be installed
---> Package ghc-filepath.x86_64 0:1.3.0.1-26.4.el7 will be installed
---> Package ghc-json.x86_64 0:0.7-4.el7 will be installed
---> Package ghc-mtl.x86_64 0:2.1.2-27.el7 will be installed
---> Package ghc-old-locale.x86_64 0:1.0.0.5-26.4.el7 will be installed
---> Package ghc-parsec.x86_64 0:3.1.3-31.el7 will be installed
---> Package ghc-pretty.x86_64 0:1.1.1.0-26.4.el7 will be installed
---> Package ghc-regex-base.x86_64 0:0.93.2-29.el7 will be installed
---> Package ghc-regex-tdfa.x86_64 0:1.1.8-11.el7 will be installed
---> Package ghc-syb.x86_64 0:0.4.0-35.el7 will be installed
---> Package ghc-text.x86_64 0:0.11.3.1-2.el7 will be installed
---> Package ghc-time.x86_64 0:1.4.0.1-26.4.el7 will be installed
---> Package ghc-transformers.x86_64 0:0.3.0.0-34.el7 will be installed
---> Package ghc-unix.x86_64 0:2.6.0.1-26.4.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================================================================================================
Installing:
ShellCheck x86_64 0.3.8-1.el7 epel 512 k
Installing for dependencies:
ghc-ShellCheck x86_64 0.3.8-1.el7 epel 555 k
ghc-array x86_64 0.4.0.1-26.4.el7 epel 113 k
ghc-base x86_64 4.6.0.1-26.4.el7 epel 1.6 M
ghc-bytestring x86_64 0.10.0.2-26.4.el7 epel 182 k
ghc-containers x86_64 0.5.0.0-26.4.el7 epel 287 k
ghc-deepseq x86_64 1.3.0.1-26.4.el7 epel 45 k
ghc-directory x86_64 1.2.0.1-26.4.el7 epel 59 k
ghc-filepath x86_64 1.3.0.1-26.4.el7 epel 60 k
ghc-json x86_64 0.7-4.el7 epel 96 k
ghc-mtl x86_64 2.1.2-27.el7 epel 33 k
ghc-old-locale x86_64 1.0.0.5-26.4.el7 epel 50 k
ghc-parsec x86_64 3.1.3-31.el7 epel 105 k
ghc-pretty x86_64 1.1.1.0-26.4.el7 epel 57 k
ghc-regex-base x86_64 0.93.2-29.el7 epel 28 k
ghc-regex-tdfa x86_64 1.1.8-11.el7 epel 553 k
ghc-syb x86_64 0.4.0-35.el7 epel 39 k
ghc-text x86_64 0.11.3.1-2.el7 epel 379 k
ghc-time x86_64 1.4.0.1-26.4.el7 epel 187 k
ghc-transformers x86_64 0.3.0.0-34.el7 epel 100 k
ghc-unix x86_64 2.6.0.1-26.4.el7 epel 160 k
Transaction Summary
==============================================================================================================================================================================================================================================================================
Install 1 Package (+20 Dependent packages)
Total download size: 5.1 M
Installed size: 34 M
Downloading packages:
(1/21): ShellCheck-0.3.8-1.el7.x86_64.rpm | 512 kB 00:00:00
(2/21): ghc-ShellCheck-0.3.8-1.el7.x86_64.rpm | 555 kB 00:00:00
(3/21): ghc-array-0.4.0.1-26.4.el7.x86_64.rpm | 113 kB 00:00:00
(4/21): ghc-bytestring-0.10.0.2-26.4.el7.x86_64.rpm | 182 kB 00:00:00
(5/21): ghc-base-4.6.0.1-26.4.el7.x86_64.rpm | 1.6 MB 00:00:00
(6/21): ghc-containers-0.5.0.0-26.4.el7.x86_64.rpm | 287 kB 00:00:00
(7/21): ghc-deepseq-1.3.0.1-26.4.el7.x86_64.rpm | 45 kB 00:00:00
(8/21): ghc-directory-1.2.0.1-26.4.el7.x86_64.rpm | 59 kB 00:00:00
(9/21): ghc-filepath-1.3.0.1-26.4.el7.x86_64.rpm | 60 kB 00:00:00
(10/21): ghc-json-0.7-4.el7.x86_64.rpm | 96 kB 00:00:00
(11/21): ghc-mtl-2.1.2-27.el7.x86_64.rpm | 33 kB 00:00:00
(12/21): ghc-old-locale-1.0.0.5-26.4.el7.x86_64.rpm | 50 kB 00:00:00
(13/21): ghc-parsec-3.1.3-31.el7.x86_64.rpm | 105 kB 00:00:00
(14/21): ghc-pretty-1.1.1.0-26.4.el7.x86_64.rpm | 57 kB 00:00:00
(15/21): ghc-regex-base-0.93.2-29.el7.x86_64.rpm | 28 kB 00:00:00
(16/21): ghc-syb-0.4.0-35.el7.x86_64.rpm | 39 kB 00:00:00
(17/21): ghc-regex-tdfa-1.1.8-11.el7.x86_64.rpm | 553 kB 00:00:00
(18/21): ghc-text-0.11.3.1-2.el7.x86_64.rpm | 379 kB 00:00:00
(19/21): ghc-time-1.4.0.1-26.4.el7.x86_64.rpm | 187 kB 00:00:00
(20/21): ghc-transformers-0.3.0.0-34.el7.x86_64.rpm | 100 kB 00:00:00
(21/21): ghc-unix-2.6.0.1-26.4.el7.x86_64.rpm | 160 kB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 9.0 MB/s | 5.1 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : ghc-base-4.6.0.1-26.4.el7.x86_64 1/21
Installing : ghc-array-0.4.0.1-26.4.el7.x86_64 2/21
Installing : ghc-deepseq-1.3.0.1-26.4.el7.x86_64 3/21
Installing : ghc-bytestring-0.10.0.2-26.4.el7.x86_64 4/21
Installing : ghc-transformers-0.3.0.0-34.el7.x86_64 5/21
Installing : ghc-mtl-2.1.2-27.el7.x86_64 6/21
Installing : ghc-text-0.11.3.1-2.el7.x86_64 7/21
Installing : ghc-containers-0.5.0.0-26.4.el7.x86_64 8/21
Installing : ghc-old-locale-1.0.0.5-26.4.el7.x86_64 9/21
Installing : ghc-time-1.4.0.1-26.4.el7.x86_64 10/21
Installing : ghc-parsec-3.1.3-31.el7.x86_64 11/21
Installing : ghc-unix-2.6.0.1-26.4.el7.x86_64 12/21
Installing : ghc-regex-base-0.93.2-29.el7.x86_64 13/21
Installing : ghc-syb-0.4.0-35.el7.x86_64 14/21
Installing : ghc-pretty-1.1.1.0-26.4.el7.x86_64 15/21
Installing : ghc-filepath-1.3.0.1-26.4.el7.x86_64 16/21
Installing : ghc-directory-1.2.0.1-26.4.el7.x86_64 17/21
Installing : ghc-json-0.7-4.el7.x86_64 18/21
Installing : ghc-regex-tdfa-1.1.8-11.el7.x86_64 19/21
Installing : ghc-ShellCheck-0.3.8-1.el7.x86_64 20/21
Installing : ShellCheck-0.3.8-1.el7.x86_64 21/21
Verifying : ghc-transformers-0.3.0.0-34.el7.x86_64 1/21
Verifying : ghc-array-0.4.0.1-26.4.el7.x86_64 2/21
Verifying : ShellCheck-0.3.8-1.el7.x86_64 3/21
Verifying : ghc-ShellCheck-0.3.8-1.el7.x86_64 4/21
Verifying : ghc-regex-tdfa-1.1.8-11.el7.x86_64 5/21
Verifying : ghc-mtl-2.1.2-27.el7.x86_64 6/21
Verifying : ghc-syb-0.4.0-35.el7.x86_64 7/21
Verifying : ghc-bytestring-0.10.0.2-26.4.el7.x86_64 8/21
Verifying : ghc-pretty-1.1.1.0-26.4.el7.x86_64 9/21
Verifying : ghc-directory-1.2.0.1-26.4.el7.x86_64 10/21
Verifying : ghc-unix-2.6.0.1-26.4.el7.x86_64 11/21
Verifying : ghc-text-0.11.3.1-2.el7.x86_64 12/21
Verifying : ghc-deepseq-1.3.0.1-26.4.el7.x86_64 13/21
Verifying : ghc-old-locale-1.0.0.5-26.4.el7.x86_64 14/21
Verifying : ghc-containers-0.5.0.0-26.4.el7.x86_64 15/21
Verifying : ghc-base-4.6.0.1-26.4.el7.x86_64 16/21
Verifying : ghc-time-1.4.0.1-26.4.el7.x86_64 17/21
Verifying : ghc-parsec-3.1.3-31.el7.x86_64 18/21
Verifying : ghc-filepath-1.3.0.1-26.4.el7.x86_64 19/21
Verifying : ghc-json-0.7-4.el7.x86_64 20/21
Verifying : ghc-regex-base-0.93.2-29.el7.x86_64 21/21
Installed:
ShellCheck.x86_64 0:0.3.8-1.el7
Dependency Installed:
ghc-ShellCheck.x86_64 0:0.3.8-1.el7 ghc-array.x86_64 0:0.4.0.1-26.4.el7 ghc-base.x86_64 0:4.6.0.1-26.4.el7 ghc-bytestring.x86_64 0:0.10.0.2-26.4.el7 ghc-containers.x86_64 0:0.5.0.0-26.4.el7 ghc-deepseq.x86_64 0:1.3.0.1-26.4.el7
ghc-directory.x86_64 0:1.2.0.1-26.4.el7 ghc-filepath.x86_64 0:1.3.0.1-26.4.el7 ghc-json.x86_64 0:0.7-4.el7 ghc-mtl.x86_64 0:2.1.2-27.el7 ghc-old-locale.x86_64 0:1.0.0.5-26.4.el7 ghc-parsec.x86_64 0:3.1.3-31.el7
ghc-pretty.x86_64 0:1.1.1.0-26.4.el7 ghc-regex-base.x86_64 0:0.93.2-29.el7 ghc-regex-tdfa.x86_64 0:1.1.8-11.el7 ghc-syb.x86_64 0:0.4.0-35.el7 ghc-text.x86_64 0:0.11.3.1-2.el7 ghc-time.x86_64 0:1.4.0.1-26.4.el7
ghc-transformers.x86_64 0:0.3.0.0-34.el7 ghc-unix.x86_64 0:2.6.0.1-26.4.el7
Complete!
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.
- 161.
- 162.
- 163.
- 164.
- 165.
- 166.
- 167.
- 168.
- 169.
- 170.
- 171.
- 172.
- 173.
- 174.
- 175.
- 176.
- 177.
- 178.
- 179.
- 180.
- 181.
- 182.
- 183.
- 184.
- 185.
- 186.
- 187.
- 188.
- 189.
- 190.