シェルスクリプト総合 その37at TECH
シェルスクリプト総合 その37 - 暇つぶし2ch1032:デフォルトの名無しさん
22/12/18 15:19:58.34 dtHdvs65.net
コマンドがファイルでありえる限りヌル文字と/以外なんでもありだし、本当に任意コマンドを受け取って呼ぶならcommand, type, envとかで全部問い合わせるか、クォートする必要があるな
ところで任意文字列のコマンドが既にダメなのは今更な事に気付いた、例えば
✗com=mand arg1 arg2…
✔\com=mand arg1 arg2...
これを流用して意味を為さない
=label
なんてどうかと思ったが、bash/dashはcommand not found返しやがる

1033:デフォルトの名無しさん
22/12/18 15:31:36.28 dtHdvs65.net
不用心にパス区切へ使われがちな:はなるべく避けてるけど、名前空間の表現なんかでpkg:nameくらいは使いたい
末尾:という制限付きならまあ
とりあえずbashは関数も実行ファイルも普通に作れるしガン無視の模用、実効性は疑問

1034:デフォルトの名無しさん
22/12/18 15:46:15.04 ZsJ4rXOo.net
個々人が(覚えてたら)一応リスペクトしておくか、の積み重ねじゃね

1035:デフォルトの名無しさん
22/12/18 16:06:25.57 ZsJ4rXOo.net
>>983
=は他のコンテキストでクオートする必要がないところが特異
任意文字がダメなのはコントロールオペレータやメタ文字、予約語もそう
当たり前だから忘れがちだけど、空白>|($&cを含んだコマンドを呼ぶならクオートする

1036:デフォルトの名無しさん
22/12/18 16:48:20.92 X5nUMPIw.net
>>983
面白い挙動見つけたな
名前を受け取ってevalし、空でなければ普通に環境設定、空ならデフォルト動作として=cmdが呼ばれるとか
色々遊べそう
禍根はこうして産まれるんだなって

1037:デフォルトの名無しさん
22/12/18 17:18:29.27 X5nUMPIw.net
一応opengroupのShell Command Languageには
The words that are recognized as variable assignments or redirections according to Shell Grammar Rules are saved for processing in steps 3 and 4.
と記載があるので、variable assignmentとして認識できないなら、コマンドとして検索すると間接的に示唆してるな
もちろん期待すべきではないが

1038:デフォルトの名無しさん
22/12/18 17:34:17.53 hzU9uYVT.net
名前が空になるのは大抵eval "$var=$val"のようなコードでのバリデーション不足だから、エラーにしてくれれば親切なのに
残念

1039:デフォルトの名無しさん
22/12/18 18:33:19.40 KWJCN7PT.net
挙動は揃ってるっぽいな
こんな時の為の明示的なunspecified
汚いから連想配列使えって?標準を示してくれればな

1040:デフォルトの名無しさん
22/12/18 19:25:00.97 X5nUMPIw.net
親切にエラーを投げても構わないよ、って意図はしばしば察せられるね
正直とても分かりにくいが
変数はダメ文字多いけど、頑張るならx$VARとか

1041:デフォルトの名無しさん
22/12/18 21:30:49.34 TnNkrrc4.net
>>989-990
それがBourne Shellの動作だからね
POSIXはそれを明確化しただけ

さっきからずっとPOSIXに文句を言っているようだが
POSIXにごちゃごちゃ言うようなないようじゃないよ

そんなの意味ないからbashやkshの開発者に
変更してくれって言わないとだめ

1042:デフォルトの名無しさん
22/12/18 21:32:32.95 TnNkrrc4.net
>>991
> 変数はダメ文字多いけど、頑張るならx$VARとか
え?それで何が防げると思ってるの?



1043:少しよく考えた方がいい 無意味な話をしてる。



1044:デフォルトの名無しさん
22/12/18 21:38:48.78 TnNkrrc4.net
>>990
シェルスクリプトに連想配列はないよ

1045:デフォルトの名無しさん
22/12/18 22:49:12.26 1Tc0QAtx.net
1レスで書いてよ

1046:デフォルトの名無しさん
22/12/19 00:58:54.84 DF8VTccp.net
>>992
互換性を保つ必要があるわけだから
ここでごちゃごちゃ言ってもどうしようもないよね
POSIXに色々書いてあったとしてもそれは
後からでも変更できるので気にする必要はない

1047:デフォルトの名無しさん
22/12/19 02:05:36.38 8Bk5E6e1.net
ここに居る人は多かれ少なかれ利害関係者なわけだけど、その意識が欠けてる感じがする
俺は物言うエンドユーザー(いわゆるクレーマー)だけど
ニュースグループ、メーリス、バグレポートに直接クレーム付けるのが憚られるインフォーマルな話題やネタは大体ここから拾ってたりする
おまえらエッジケース見付けるのうまいしな
少なくともchetは丁寧に返信してくれるよ、他は知らん

1048:デフォルトの名無しさん
22/12/19 02:10:26.67 sparn4DJ.net
なんか大した実績もないクソ雑魚が
いきがってるなw

1049:デフォルトの名無しさん
22/12/19 02:16:02.35 8Bk5E6e1.net
>>998
まあ実績はないけど、言わんで困るのも俺だしな

1050:デフォルトの名無しさん
22/12/19 02:21:06.52 sparn4DJ.net
まあちゃんと日本語話せるようになれよw
お前の日本語は意味不明で誰も理解できんからwww

1051:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 439日 3時間 31分 36秒

1052:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch