Question
Which command safely iterates over filenames that may
contain spaces and newlines in a shell script?Solution
for f in expands to filenames preserving spaces;lsand command substitution break on whitespace/newlines. For arbitrary names including newlines,find -print0withwhile IFS= read -r -d ''is safest but among options,for f in ` is correct.
'рдЧреБрд░реБрдХреБрд▓' рд╢рдмреНрдж рдореЗрдВ рдХреМрди рд╕рд╛ рд╕рдорд╛рд╕ рд╣реИ?┬а
рдЗрдирдореЗрдВ рд╕реЗ 'рддрддреНрд╕рдо' рд╢рдмреНрдж рдХреМрди-рд╕рд╛ рд╣реИ?
рдХрд┐рд╕ рд╡рд╛рдХреНрдпреЗ рдореЗрдВ рднрд╡рд╡рд╛рдЪреНрдп рдХрд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдЖ рд╣реИ┬а ?
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рддрджреНрднрд╡ рд╢рдмреНрдж рд╣реИ :
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдореЗрдВ , рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ , рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪ...
рдХрдВрдХрди рдХрд┐рдВрдХрд┐рди рдиреВрдкреБрд░ рдзреБрдирд┐ рд╕реБрдирд┐ рдХрд╣рдд рд▓рдЦрди рд╕рди рд░рд╛рдо рд╣реГрджрдп рдЧреБрдирд┐редред - рдореЗ...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕реЗ slump рдХрд╛ рд╕рд╣реА рдкрд░реНрдпрд╛рдп рд╣реИ ?
рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╡рд╛рдХреНрдп рдЪреБрдиреЗрдВ:
рдЕрдкрдирд╛ рджреЛрд╖ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд┐рд░ рдХреНрдпреЛрдВ рд╣реЛ ? рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрдп...
рд╢ рд╖ рд╕ рдХрд┐рд╕рдХреЗ рдЕрдиреНрддрд░реНрдЧрдд рдЖрддреЗ рд╣реИрдВред