koalaman / shellcheck Public
SC2268
Brett edited this page Nov 24, 2021
·
7 revisions
Pages 473
-
LoadingHome
-
LoadingAzure Pipelines
-
LoadingCentOS6
-
LoadingChecks
-
LoadingCircleCI
-
LoadingContrib
-
LoadingDevGuide
-
LoadingDirective
-
LoadingDrone
-
LoadingGitLab CI
-
LoadingIgnore
-
LoadingIntegration
-
LoadingJUnit
-
LoadingMore Installation Guides
-
LoadingOptional
-
LoadingParser error
-
LoadingPhabricator
-
LoadingRecursiveness
-
LoadingSC1000
-
LoadingSC1001
-
LoadingSC1003
-
LoadingSC1004
-
LoadingSC1007
-
LoadingSC1008
-
LoadingSC1009
-
LoadingSC1010
-
LoadingSC1011
-
LoadingSC1012
-
LoadingSC1014
-
LoadingSC1015
-
LoadingSC1016
-
LoadingSC1017
-
LoadingSC1018
-
LoadingSC1019
-
LoadingSC1020
-
LoadingSC1026
-
LoadingSC1028
-
LoadingSC1029
-
LoadingSC1033
-
LoadingSC1034
-
LoadingSC1035
-
LoadingSC1036
-
LoadingSC1037
-
LoadingSC1038
-
LoadingSC1039
-
LoadingSC1040
-
LoadingSC1041
-
LoadingSC1042
-
LoadingSC1044
-
LoadingSC1045
-
LoadingSC1046
-
LoadingSC1047
-
LoadingSC1048
-
LoadingSC1049
-
LoadingSC1050
-
LoadingSC1051
-
LoadingSC1052
-
LoadingSC1053
-
LoadingSC1054
-
LoadingSC1056
-
LoadingSC1058
-
LoadingSC1061
-
LoadingSC1062
-
LoadingSC1064
-
LoadingSC1065
-
LoadingSC1066
-
LoadingSC1067
-
LoadingSC1068
-
LoadingSC1069
-
LoadingSC1070
-
LoadingSC1071
-
LoadingSC1072
-
LoadingSC1073
-
LoadingSC1074
-
LoadingSC1075
-
LoadingSC1077
-
LoadingSC1078
-
LoadingSC1079
-
LoadingSC1081
-
LoadingSC1082
-
LoadingSC1083
-
LoadingSC1084
-
LoadingSC1086
-
LoadingSC1087
-
LoadingSC1088
-
LoadingSC1089
-
LoadingSC1090
-
LoadingSC1091
-
LoadingSC1094
-
LoadingSC1095
-
LoadingSC1097
-
LoadingSC1098
-
LoadingSC1099
-
LoadingSC1100
-
LoadingSC1101
-
LoadingSC1102
-
LoadingSC1104
-
LoadingSC1105
-
LoadingSC1106
-
LoadingSC1107
-
LoadingSC1108
-
LoadingSC1109
-
LoadingSC1110
-
LoadingSC1111
-
LoadingSC1112
-
LoadingSC1113
-
LoadingSC1114
-
LoadingSC1115
-
LoadingSC1116
-
LoadingSC1117
-
LoadingSC1118
-
LoadingSC1119
-
LoadingSC1120
-
LoadingSC1121
-
LoadingSC1122
-
LoadingSC1123
-
LoadingSC1124
-
LoadingSC1125
-
LoadingSC1126
-
LoadingSC1127
-
LoadingSC1128
-
LoadingSC1129
-
LoadingSC1130
-
LoadingSC1131
-
LoadingSC1132
-
LoadingSC1133
-
LoadingSC1134
-
LoadingSC1135
-
LoadingSC1136
-
LoadingSC1139
-
LoadingSC1140
-
LoadingSC1141
-
LoadingSC1142
-
LoadingSC1143
-
LoadingSC2000
-
LoadingSC2001
-
LoadingSC2002
-
LoadingSC2003
-
LoadingSC2004
-
LoadingSC2005
-
LoadingSC2006
-
LoadingSC2007
-
LoadingSC2008
-
LoadingSC2009
-
LoadingSC2010
-
LoadingSC2011
-
LoadingSC2012
-
LoadingSC2013
-
LoadingSC2014
-
LoadingSC2015
-
LoadingSC2016
-
LoadingSC2017
-
LoadingSC2018
-
LoadingSC2019
-
LoadingSC2020
-
LoadingSC2021
-
LoadingSC2022
-
LoadingSC2024
-
LoadingSC2025
-
LoadingSC2026
-
LoadingSC2027
-
LoadingSC2028
-
LoadingSC2029
-
LoadingSC2030
-
LoadingSC2031
-
LoadingSC2032
-
LoadingSC2033
-
LoadingSC2034
-
LoadingSC2035
-
LoadingSC2036
-
LoadingSC2037
-
LoadingSC2038
-
LoadingSC2039
-
LoadingSC2040
-
LoadingSC2041
-
LoadingSC2043
-
LoadingSC2044
-
LoadingSC2045
-
LoadingSC2046
-
LoadingSC2048
-
LoadingSC2049
-
LoadingSC2050
-
LoadingSC2051
-
LoadingSC2053
-
LoadingSC2054
-
LoadingSC2055
-
LoadingSC2056
-
LoadingSC2057
-
LoadingSC2058
-
LoadingSC2059
-
LoadingSC2060
-
LoadingSC2061
-
LoadingSC2062
-
LoadingSC2063
-
LoadingSC2064
-
LoadingSC2065
-
LoadingSC2066
-
LoadingSC2067
-
LoadingSC2068
-
LoadingSC2069
-
LoadingSC2070
-
LoadingSC2071
-
LoadingSC2072
-
LoadingSC2073
-
LoadingSC2074
-
LoadingSC2076
-
LoadingSC2077
-
LoadingSC2078
-
LoadingSC2079
-
LoadingSC2080
-
LoadingSC2081
-
LoadingSC2082
-
LoadingSC2084
-
LoadingSC2086
-
LoadingSC2087
-
LoadingSC2088
-
LoadingSC2089
-
LoadingSC2090
-
LoadingSC2091
-
LoadingSC2092
-
LoadingSC2093
-
LoadingSC2094
-
LoadingSC2095
-
LoadingSC2096
-
LoadingSC2097
-
LoadingSC2098
-
LoadingSC2099
-
LoadingSC2100
-
LoadingSC2101
-
LoadingSC2102
-
LoadingSC2103
-
LoadingSC2104
-
LoadingSC2105
-
LoadingSC2106
-
LoadingSC2107
-
LoadingSC2108
-
LoadingSC2109
-
LoadingSC2110
-
LoadingSC2112
-
LoadingSC2113
-
LoadingSC2114
-
LoadingSC2115
-
LoadingSC2116
-
LoadingSC2117
-
LoadingSC2119
-
LoadingSC2120
-
LoadingSC2121
-
LoadingSC2122
-
LoadingSC2123
-
LoadingSC2124
-
LoadingSC2125
-
LoadingSC2126
-
LoadingSC2128
-
LoadingSC2129
-
LoadingSC2130
-
LoadingSC2139
-
LoadingSC2140
-
LoadingSC2141
-
LoadingSC2142
-
LoadingSC2143
-
LoadingSC2144
-
LoadingSC2145
-
LoadingSC2146
-
LoadingSC2147
-
LoadingSC2148
-
LoadingSC2149
-
LoadingSC2150
-
LoadingSC2151
-
LoadingSC2152
-
LoadingSC2153
-
LoadingSC2154
-
LoadingSC2155
-
LoadingSC2156
-
LoadingSC2157
-
LoadingSC2158
-
LoadingSC2159
-
LoadingSC2160
-
LoadingSC2161
-
LoadingSC2162
-
LoadingSC2163
-
LoadingSC2164
-
LoadingSC2165
-
LoadingSC2166
-
LoadingSC2167
-
LoadingSC2168
-
LoadingSC2169
-
LoadingSC2170
-
LoadingSC2171
-
LoadingSC2172
-
LoadingSC2173
-
LoadingSC2174
-
LoadingSC2175
-
LoadingSC2176
-
LoadingSC2177
-
LoadingSC2178
-
LoadingSC2179
-
LoadingSC2180
-
LoadingSC2181
-
LoadingSC2182
-
LoadingSC2183
-
LoadingSC2184
-
LoadingSC2185
-
LoadingSC2186
-
LoadingSC2187
-
LoadingSC2188
-
LoadingSC2189
-
LoadingSC2190
-
LoadingSC2191
-
LoadingSC2192
-
LoadingSC2193
-
LoadingSC2194
-
LoadingSC2195
-
LoadingSC2196
-
LoadingSC2197
-
LoadingSC2198
-
LoadingSC2199
-
LoadingSC2200
-
LoadingSC2201
-
LoadingSC2202
-
LoadingSC2203
-
LoadingSC2204
-
LoadingSC2205
-
LoadingSC2206
-
LoadingSC2207
-
LoadingSC2208
-
LoadingSC2209
-
LoadingSC2210
-
LoadingSC2211
-
LoadingSC2212
-
LoadingSC2213
-
LoadingSC2214
-
LoadingSC2215
-
LoadingSC2216
-
LoadingSC2217
-
LoadingSC2218
-
LoadingSC2219
-
LoadingSC2220
-
LoadingSC2221
-
LoadingSC2222
-
LoadingSC2223
-
LoadingSC2224
-
LoadingSC2225
-
LoadingSC2226
-
LoadingSC2227
-
LoadingSC2229
-
LoadingSC2230
-
LoadingSC2231
-
LoadingSC2232
-
LoadingSC2233
-
LoadingSC2234
-
LoadingSC2235
-
LoadingSC2236
-
LoadingSC2237
-
LoadingSC2238
-
LoadingSC2239
-
LoadingSC2240
-
LoadingSC2241
-
LoadingSC2242
-
LoadingSC2243
-
LoadingSC2244
-
LoadingSC2245
-
LoadingSC2246
-
LoadingSC2247
-
LoadingSC2248
-
LoadingSC2249
-
LoadingSC2250
-
LoadingSC2251
-
LoadingSC2252
-
LoadingSC2253
-
LoadingSC2254
-
LoadingSC2255
-
LoadingSC2256
-
LoadingSC2257
-
LoadingSC2259
-
LoadingSC2260
-
LoadingSC2261
-
LoadingSC2262
-
LoadingSC2263
-
LoadingSC2264
-
LoadingSC2267
-
LoadingSC2269
-
LoadingSC2270
-
LoadingSC2271
-
LoadingSC2272
-
LoadingSC2273
-
LoadingSC2274
-
LoadingSC2275
-
LoadingSC2276
-
LoadingSC2277
-
LoadingSC2278
-
LoadingSC2279
-
LoadingSC2280
-
LoadingSC2281
-
LoadingSC2282
-
LoadingSC2283
-
LoadingSC2284
-
LoadingSC2285
-
LoadingSC2286
-
LoadingSC2287
-
LoadingSC2288
-
LoadingSC2289
-
LoadingSC2290
-
LoadingSC2291
-
LoadingSC2292
-
LoadingSC2293
-
LoadingSC2294
-
LoadingSC2295
-
LoadingSC2296
-
LoadingSC2297
-
LoadingSC2298
-
LoadingSC2299
-
LoadingSC2300
-
LoadingSC2301
-
LoadingSC2302
-
LoadingSC2303
-
LoadingSC2304
-
LoadingSC2305
-
LoadingSC2307
-
LoadingSC2308
-
LoadingSC2309
-
LoadingSC2310
-
LoadingSC2311
-
LoadingSC2312
-
LoadingSC2313
-
LoadingSC2314
-
LoadingSC2315
-
LoadingSC3001
-
LoadingSC3002
-
LoadingSC3003
-
LoadingSC3004
-
LoadingSC3006
-
LoadingSC3010
-
LoadingSC3012
-
LoadingSC3013
-
LoadingSC3014
-
LoadingSC3015
-
LoadingSC3017
-
LoadingSC3018
-
LoadingSC3019
-
LoadingSC3020
-
LoadingSC3021
-
LoadingSC3022
-
LoadingSC3023
-
LoadingSC3024
-
LoadingSC3025
-
LoadingSC3026
-
LoadingSC3028
-
LoadingSC3031
-
LoadingSC3034
-
LoadingSC3035
-
LoadingSC3037
-
LoadingSC3038
-
LoadingSC3039
-
LoadingSC3040
-
LoadingSC3043
-
LoadingSC3044
-
LoadingSC3045
-
LoadingSC3046
-
LoadingSC3047
-
LoadingSC3048
-
LoadingSC3049
-
LoadingSC3050
-
LoadingSC3053
-
LoadingSC3054
-
LoadingSC3055
-
LoadingSC3056
-
LoadingSC3057
-
LoadingSC3059
-
LoadingSC3060
-
Loadingseverity
-
LoadingTemplate
-
LoadingTravisCI
Clone this wiki locally
Avoid x-prefix in comparisons as it no longer serves a purpose.
Problematic code:
[ "x$pass" = "xswordfish" ]
test x"$var" = x Correct code:
[ "$pass" = "swordfish" ]
test "$var" = ""Rationale:
Some older shells would get confused if the first argument started with a dash, or consisted of ! or (. As a workaround, people would prefix variables and values to be compared with x to ensure the left-hand side always started with an alphanumeric character.
POSIX ensures this is not necessary, and all modern shells now follow suit.
Examples:
Bash 1.14 from 1992 incorrectly fails this test. This was fixed for Bash 2.0 in 1996:
var='!'
[ "$var" = "!" ]Dash 0.5.4 from 2007 incorrectly passes this test. This was fixed for Dash 0.5.5 in 2008:
x='(' y=')'
[ "$x" = "$y" ]Zsh (while not supported by ShellCheck) fixed the same problem in 2015.
Exceptions:
If you are targeting especially old shells, you can ignore this warning (or use a different letter).