シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくるShellScriptBashUNIXshellPOSIX はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない本当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文
![シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/1bfb60323a3291c97448d60ec551d9f7e8e38697/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgyJUI3JUUzJTgyJUE3JUUzJTgzJUFCJUUzJTgyJUI5JUUzJTgyJUFGJUUzJTgzJUFBJUUzJTgzJTk3JUUzJTgzJTg4JUUzJTgxJUFGJUU1JUE0JTg5JUU2JTk1JUIwJUU0JUJCJUEzJUU1JTg1JUE1JUUzJTgxJUE3JTIwJTNEJTIwJUUzJTgxJUFFJUU1JTg5JThEJUU1JUJFJThDJUUzJTgxJUFCJUUzJTgyJUI5JUUzJTgzJTlBJUUzJTgzJUJDJUUzJTgyJUI5JUUzJTgyJTkyJUU3JUJEJUFFJUUzJTgxJTkxJUUzJTgxJUFBJUUzJTgxJTg0JUVGJUJDJTgxJUVGJUJEJUE1JUVGJUJEJUE1JUVGJUJEJUE1JUUzJTgxJUFFJUU2JTlDJUFDJUU1JUJEJTkzJUUzJTgxJUFFJUU3JTkwJTg2JUU3JTk0JUIxJUUzJTgyJTkyJUU3JTlGJUE1JUUzJTgyJThCJUUzJTgxJUE4JUU1JTg0JUFBJUUzJTgyJThDJUUzJTgxJTlGJUU2JTk2JTg3JUU2JUIzJTk1JUUzJTgxJThDJUU4JUE2JThCJUUyJTgwJUE2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04YjM0YjhhMTIzMGZkZWU1Y2I1MmJjOWJiNzYwOTdhOQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa28xbmtzbSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9M2NmYjZkZGZmZTg2YzU2N2U1NzI1ZmZlZjQ3MjkxYzE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dcf83f53b1ecec6053cd2b51f5cbb72cd)