[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

530users がブックマーク コメント 62

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

530 users qiita.com/ko1nksm

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント62

  • 注目コメント
  • 新着コメント
turanukimaru
シェルは「対話」でありプログラミングは「布告」、つまりユーザとの応答が違う全然別のコンテキストなので別の文法が適切でもおかしくない。逆に長いシェルスクリプトは読みづらく適切でないとも言えるのだが。

その他
kamocyc
シェルスクリプトが優れているとは思えないけれども、後発のPowerShellもけっこうややこしいので、やっぱり難しいんだろう

その他
kotaponx
個人的には悪くない実装だと思うけども、この手の思想が嫌いな人も居ると思う。pythonのインデントの扱いなんかもそうだけども、つまるところ「慣れ」とか「まぁそういうもんだ」という感じかな......

その他
delphinus35
大変面白かった。/シェルスクリプトを代替しようという試みはちょくちょく見たけど、結局sed, awk, Perl, Ruby辺りしか定着しなかったね。

その他
tmtms
これは知らなかった → "実は環境変数は Bourne シェルのために新たに作られた UNIX の新機能です。Bourne シェル登場以前に UNIX に環境変数はありません"

その他
ryer
文章が上手なのですらすらと気持ちよく最後まで読むことができました。そして面白かった!

その他
remonoil
NODE_ENV=production node ...っていう謎文法はこれだったのか

その他
iww
『シェルスクリプトの言語は他のプログラミング言語がまったく考慮していない使い方を考慮して設計されています。それは人間がシェル上で直接入力して実行するという使い方です。』

その他
mapk0y
手元の bash では "A=hoge" はシェル変数を置き換えるけど、"A=hoge :" だと置き換えないので「変数代入はコマンドとサフィックスが省略されている」と「コマンドを省略したとき : 」のどちらかを満たしてないのかな

その他
Nyoho
とても勉強になった。

その他
takuya_1st
たしかにそうやな。言われてみると気づかずそう使ってるわ LANG=C date とか

その他
nekoruri
必然でこうなっているのはわかるけど、「優れた文法」って言われると違和感しかないなあw

その他
bigchu
変数代入の巻。そういあプログラミングではないな

その他
richard_raw
面白い。把握していない事柄が多かったです。

その他
tmatsuu
わいわい。`>/tmp/list.txt ls -al /` はmazgiさんが実際にそのスタイル書いてるのを見て衝撃を受けた記憶がある。

その他
otchy210
うお、面白い話がいっぱいだ。これぞ楽しいインターネット。知らない話が多かった。

その他
kits
「オプションや引数とリダイレクトは混在して書くことが出来ます」/ 「シェルスクリプトは元からプログラミング言語である」

その他
mapk0y
mapk0y 手元の bash では "A=hoge" はシェル変数を置き換えるけど、"A=hoge :" だと置き換えないので「変数代入はコマンドとサフィックスが省略されている」と「コマンドを省略したとき : 」のどちらかを満たしてないのかな

2021年11月11日 リンク

その他
UME
いくつかの文化を取り込んだ結果が今の姿さ。フォーマットそのものはそういうものかくらいの意識で十分だと思うよ

その他
kohiro0
PowerShellさんの悪口はそこまでだ

その他
mobits
スペースがIFSに含まれるからやろ(真顔)

その他
rryu
あそこに変数代入が書けるのはそういうことだったのか。あの構文がsimple commandなら単純でないものはどうなってしまうのか...

その他
fu_kak
おもしろい

その他
khtokage
BNFとかの文法的な話かと思いきや、意外な扱いや歴史が知れてとても面白くて勉強になった。

その他
rti7743
シェルスクリプトやバッチファイルは謎の作法が必要だからな。その代わりにどこででも動くけど。

その他
hiro_curry
コマンドプロンプトは対話用言語すぎるし、Power Shellはプログラミング言語すぎるんだよなあ。

その他
t_thor
面白いなあ

その他
lli
おもしろい

その他
kiyo_hiko
へーすごい。こうなって居たのか。という驚きはあるがそのうち忘れて行き当たりばったりに戻る。

その他
JULY
「人間がシェル上で直接入力して実行する使い方」を重視している、というのが重要。インタラクティブなコマンド実行とスクリプトによる実行に差がない。それを理解せずにケチをつけるプログラマーが多い印象。

その他
fumikef
タイトルの本当の理由はまとめるとコマンドラインで「シェル文法」入力を行えることを前提として設計されたプログラミング言語だから。スペースはプログラムの可読性は上げるが入力では手間にしかならない。

その他
t_motooka
これは良いまとめ

その他
tmtms
tmtms これは知らなかった → "実は環境変数は Bourne シェルのために新たに作られた UNIX の新機能です。Bourne シェル登場以前に UNIX に環境変数はありません"

2021年11月11日 リンク

その他
willnet
いいはなし

その他
Gaju
ちゃんと文法調べたことなかったな

その他
mas-higa
prefix に redirect 書けるの知らんかった。 CXX=clang++ make とかはふつうにする。set -k もしたことなかった。変数代入 コマンド 引数 リダイレクトの順が一番わかりやすい。

その他
strawberryhunter
シェルスクリプトはプロセスの起動とパイプ、リダイレクトの書きやすさを優先しているに過ぎない。つまり、文法やAPIを工夫すれば平均的なプログラミング言語からかけ離れたシェルは無用ではないかと思う。

その他
n314
いい読み物。LANG=C以外にも、自作のスクリプトでDB_DSN=pgsql://...とかAPP_ENV=stagingとか、前置きの変数が前提のスクリプトを結構書いていた。

その他
kotaponx
kotaponx 個人的には悪くない実装だと思うけども、この手の思想が嫌いな人も居ると思う。pythonのインデントの扱いなんかもそうだけども、つまるところ「慣れ」とか「まぁそういうもんだ」という感じかな......

2021年11月11日 リンク

その他
T-norf
意味が分かると記憶に定着するので、いいよね。「ねぇねぇ、岡村。〜 ボーっといきてんじゃねーよ」仕草で、こういうコンテンツ量産したら需要、、、ないかw

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「シェルスクリプト...」が注目されています。

気持ちをシェアしよう

ツイートする

シェルスクリプトは変数代入で = の前後にスペースを置けない!・・・の本当の理由を知ると優れた文法が見えてくる - Qiita

はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「... はじめに シェルスクリプトの変数代入で = の前後にスペースを置くことができない理由は、検索すれば「プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話」のような記事がすぐに見つかります。記事に書いてあるとおり変数代入とコマンド呼び出しと区別がつかないからです。それは間違いではないんですが、私はもう少し説明が足りないと感じています。そこで今回は = の前後にスペースを置けない当の理由を解説したいと思います。 の前に皆さんにはこの話を読みながら、自分がシェルスクリプトの言語設計者だったとしたら、どういう言語仕様にするかを考えて欲しいです。なぜかと言うとシェルスクリプトの文法は優れているという結論につながるからです。私には今のシェルスクリプトの言語を超える文法(根から大きく改善するという意味)は思いつきませんが、皆さんはどうでしょうか?

ブックマークしたユーザー

  • tomato37132023年08月22日 tomato3713
  • mnmandahalf2023年01月14日 mnmandahalf
  • techtech05212022年10月02日 techtech0521
  • cubed-l2022年06月21日 cubed-l
  • quick_past2022年06月21日 quick_past
  • zu22022年06月20日 zu2
  • ryshinoz2022年01月29日 ryshinoz
  • norisuke32022年01月04日 norisuke3
  • rikuba2021年12月03日 rikuba
  • kwy2021年12月02日 kwy
  • takuya_1st2021年12月01日 takuya_1st
  • tanakaBox2021年12月01日 tanakaBox
  • onk2021年11月18日 onk
  • satoshie2021年11月18日 satoshie
  • nekoruri2021年11月18日 nekoruri
  • ahya3652021年11月18日 ahya365
  • bigchu2021年11月17日 bigchu
  • mhag2021年11月17日 mhag
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /