シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/
関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
探検
シェルスクリプト総合 その36
■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
106デフォルトの名無しさん
2021/03/23(火) 17:53:11.07ID:laboXhIZ 0、標準入力
1、標準出力
2、標準エラー出力
ですよね?
cat <&0 ってやってなんか文字打ったら
標準入力から入力したものを標準出力に出力するから
入力した行と同じ行が出力されるのはわかるんですが
なんで cat <&2 ってやっても同じように
入力した行と同じ行が出力されるんです?
標準エラー出力から入力するってどういう意味なんです?
1、標準出力
2、標準エラー出力
ですよね?
cat <&0 ってやってなんか文字打ったら
標準入力から入力したものを標準出力に出力するから
入力した行と同じ行が出力されるのはわかるんですが
なんで cat <&2 ってやっても同じように
入力した行と同じ行が出力されるんです?
標準エラー出力から入力するってどういう意味なんです?
107デフォルトの名無しさん
2021/03/23(火) 18:14:05.04ID:2hAdV+Tt $ tty
/dev/pts/0
$ ps
PID TTY TIME CMD
94 pts/0 00:00:00 bash
232 pts/0 00:00:00 ps
$ sudo ls -l /proc/94/fd
total 0
lrwx------ 1 user user 0 Mar 23 17:56 0 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 1 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 2 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 255 -> /dev/pts/0
/dev/pts/0
$ ps
PID TTY TIME CMD
94 pts/0 00:00:00 bash
232 pts/0 00:00:00 ps
$ sudo ls -l /proc/94/fd
total 0
lrwx------ 1 user user 0 Mar 23 17:56 0 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 1 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 2 -> /dev/pts/0
lrwx------ 1 user user 0 Mar 23 18:08 255 -> /dev/pts/0
108デフォルトの名無しさん
2021/03/23(火) 20:33:12.59ID:laboXhIZ あなるほー
紐付いてんのか
POSIXで決まってたりするんかな?
紐付いてんのか
POSIXで決まってたりするんかな?
109デフォルトの名無しさん
2021/03/23(火) 22:24:47.39ID:abnhlux1 POSIXで当然定義はされてる
紐付いてんのか(?)のことじゃないけどな
紐付いてんのか(?)のことじゃないけどな
110デフォルトの名無しさん
2021/03/23(火) 22:43:31.00ID:laboXhIZ 標準エラー出力から入力した場合の仕様はどこに書いてるの?
111デフォルトの名無しさん
2021/03/23(火) 23:02:58.99ID:abnhlux1 そんな仕様じゃないよ
<&2 という表記だから、標準エラー出力から入力する と思うのはしょうがないけど、多分思い違いしてるぞ
0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにするだからな
(その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、それの複製なんだから、以下省略
<&2 という表記だから、標準エラー出力から入力する と思うのはしょうがないけど、多分思い違いしてるぞ
0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにするだからな
(その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、それの複製なんだから、以下省略
112デフォルトの名無しさん
2021/03/23(火) 23:06:00.65ID:laboXhIZ > (その時点での)標準エラー出力のディスクリプタがrwで開かれてる tty(/dev/pts/0) で、
これがPOSIXの仕様なの?
これがPOSIXの仕様なの?
113デフォルトの名無しさん
2021/03/23(火) 23:17:16.76ID:abnhlux1 0<&2 は、標準エラー出力のディスクリプタの複製を標準入力のディスクリプタにする
これ
そこは、疑問と思ってるようだが仕様での動作として何も疑問はないってこと
これ
そこは、疑問と思ってるようだが仕様での動作として何も疑問はないってこと
114デフォルトの名無しさん
2021/03/29(月) 04:33:30.50ID:T/NVAJfs シェルスクリプトの互換性やら#!の書き方の作法互換性やらbashismやら言われてるけど、みんなmailcap/mime-type使わんの?
115デフォルトの名無しさん
2021/03/29(月) 04:41:36.50ID:T/NVAJfs 一応mailcapそれ自体はPOSIX…のはず
ちゃんと各shのmime-typeがそのPOSIXで定義されてるかは不明だけど、IANAとかでは規定あるわけだし
みんな適切に拡張子つければ解決するんじゃないかなって
unix系以外のOSでも対応してるのでPOSIXのみ準拠よりポータブルのはず
ちゃんと各shのmime-typeがそのPOSIXで定義されてるかは不明だけど、IANAとかでは規定あるわけだし
みんな適切に拡張子つければ解決するんじゃないかなって
unix系以外のOSでも対応してるのでPOSIXのみ準拠よりポータブルのはず
116デフォルトの名無しさん
2021/03/29(月) 07:07:57.33ID:wK+S1L2g117デフォルトの名無しさん
2021/03/29(月) 07:31:02.84ID:HXftsQaM >>116
だからこそ
application/x-dash; /bin/dash %s
mime-extensions
application/x-bash; /usr/bin/bash %s
mime-extensions
application/x-dash sh dash
application/x-bash bash
なり指定しておけば面倒はないと思ったんだよ(ごめん書式はあってるかしらん)
だからこそ
application/x-dash; /bin/dash %s
mime-extensions
application/x-bash; /usr/bin/bash %s
mime-extensions
application/x-dash sh dash
application/x-bash bash
なり指定しておけば面倒はないと思ったんだよ(ごめん書式はあってるかしらん)
118デフォルトの名無しさん
2021/03/29(月) 07:32:42.67ID:wK+S1L2g >>117
だから /bin/sh になにを設定するのか教えて
だから /bin/sh になにを設定するのか教えて
119デフォルトの名無しさん
2021/03/29(月) 07:34:02.79ID:HXftsQaM ああ、/binとかに標準で入ってるのは大体.sh付いてないお行儀悪いのばっかだから不味いか…
今時配布するスクリプトには大体付けると思うけど、こればっかは仕方ない
今時配布するスクリプトには大体付けると思うけど、こればっかは仕方ない
120デフォルトの名無しさん
2021/03/29(月) 07:34:21.19ID:wK+S1L2g もう一つ。
gunzip という"シェルスクリプト" に
どういう設定をすれば良いのか教えて
$ file /bin/gunzip
/bin/gunzip: POSIX shell script, ASCII text executable
gunzip という"シェルスクリプト" に
どういう設定をすれば良いのか教えて
$ file /bin/gunzip
/bin/gunzip: POSIX shell script, ASCII text executable
121デフォルトの名無しさん
2021/03/29(月) 07:34:58.94ID:wK+S1L2g122デフォルトの名無しさん
2021/03/29(月) 07:35:28.60ID:HXftsQaM >>118
できるだけ互換なのを関連付けるのがベストプラクティスじゃないかな
できるだけ互換なのを関連付けるのがベストプラクティスじゃないかな
123デフォルトの名無しさん
2021/03/29(月) 07:36:04.54ID:wK+S1L2g124デフォルトの名無しさん
2021/03/29(月) 07:36:41.97ID:HXftsQaM >>121
どう考えても良くない習慣だと思うよ…
どう考えても良くない習慣だと思うよ…
125デフォルトの名無しさん
2021/03/29(月) 07:39:18.53ID:HXftsQaM126デフォルトの名無しさん
2021/03/29(月) 07:42:17.96ID:wK+S1L2g >>124
良くない習慣だと言ってる人はだれもいません。
実際にディストリに含まれる実行プログラムで
実装言語の拡張子をつけてるプログラムは一つもありません
Ruby、Perl、Python、拡張子がついてますか?
そもそもさぁ、作者が 拡張子 .sh つけたとしても
じゃあ、これを何で動かせば良いのさ?
/bin/sh が bash だって言ってんだろ
良くない習慣だと言ってる人はだれもいません。
実際にディストリに含まれる実行プログラムで
実装言語の拡張子をつけてるプログラムは一つもありません
Ruby、Perl、Python、拡張子がついてますか?
そもそもさぁ、作者が 拡張子 .sh つけたとしても
じゃあ、これを何で動かせば良いのさ?
/bin/sh が bash だって言ってんだろ
127デフォルトの名無しさん
2021/03/29(月) 07:50:37.48ID:T/NVAJfs >>126
ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
そりゃインタプリタはインタプリタ名が自身を現してるから付ける必要は無いけど、解釈されるスクリプトには付けない理由は無いでしょう
パス決め打ちに依存するシバンより確実にインタプリタを指定できるわけだし
ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
そりゃインタプリタはインタプリタ名が自身を現してるから付ける必要は無いけど、解釈されるスクリプトには付けない理由は無いでしょう
パス決め打ちに依存するシバンより確実にインタプリタを指定できるわけだし
128デフォルトの名無しさん
2021/03/29(月) 07:56:33.90ID:wK+S1L2g >>127
> ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
少しは想像力ないのか?
作者が、.sh という拡張子を使って配布して
それをユーザーが、.bash に変更するようにしましょう
とお前が言っていて
そうするとファイル名変わるから、その .sh が
呼び出せなくなるだろ
ぐらいのこと思いつかんのか?
> ちゃんとユーザーがどのインタプリタ(*sh、.py etc)で実行するべきか分かるように拡張子を付けるようにしましょう、って提言してる
少しは想像力ないのか?
作者が、.sh という拡張子を使って配布して
それをユーザーが、.bash に変更するようにしましょう
とお前が言っていて
そうするとファイル名変わるから、その .sh が
呼び出せなくなるだろ
ぐらいのこと思いつかんのか?
129デフォルトの名無しさん
2021/03/29(月) 07:57:55.93ID:wK+S1L2g 訂正
そうするとファイル名変わるから、その .sh を
内部で呼び出すスクリプトが動かなくなるだろ
そうするとファイル名変わるから、その .sh を
内部で呼び出すスクリプトが動かなくなるだろ
130デフォルトの名無しさん
2021/03/29(月) 07:58:26.46ID:wK+S1L2g だいたい「拡張子をつけないのが常識」だから
シバンというものがあるんだがな
シバンというものがあるんだがな
131デフォルトの名無しさん
2021/03/29(月) 07:59:44.04ID:qWZz7CCC 焦りすぎだ落ち着けw
132デフォルトの名無しさん
2021/03/29(月) 08:04:34.67ID:wK+S1L2g 落ち着いてるw
そもそも拡張子ではどのインタプリタで動かすのかわからないという前提があるのに
今更何を言ってんだこいつって話
そもそも拡張子ではどのインタプリタで動かすのかわからないという前提があるのに
今更何を言ってんだこいつって話
133デフォルトの名無しさん
2021/03/29(月) 08:04:56.34ID:T/NVAJfs >>128
拡張子は配布者が指定するんだよ、誤解を招いたみたいですまん
ここまでシバかれるとは思わんかった…
実行ファイルに拡張子付けるのが気に入らんなら、ファイル先頭付近のコメントにmime-typeを書いておけば検知されるわけだし、これなら既存の慣習と衝突しない落とし所としてどうだろ?
拡張子は配布者が指定するんだよ、誤解を招いたみたいですまん
ここまでシバかれるとは思わんかった…
実行ファイルに拡張子付けるのが気に入らんなら、ファイル先頭付近のコメントにmime-typeを書いておけば検知されるわけだし、これなら既存の慣習と衝突しない落とし所としてどうだろ?
134デフォルトの名無しさん
2021/03/29(月) 08:12:16.40ID:T/NVAJfs >>132
zshくらい所謂shと違うと、.zshと付いてること多いけど、bashくらいの分かりにくい拡張だとshと付けたくなるのは分かるなあ
zshくらい所謂shと違うと、.zshと付いてること多いけど、bashくらいの分かりにくい拡張だとshと付けたくなるのは分かるなあ
135デフォルトの名無しさん
2021/03/29(月) 08:12:32.79ID:wK+S1L2g136デフォルトの名無しさん
2021/03/29(月) 08:17:34.76ID:T/NVAJfs >>135
規格で決まってるコマンドはそりゃ付けちゃだめだよ
それ以外は気にいるか気に入らないかの問題でしょう
気にならないなら拡張子を付ける、気に入らないならmailcapが見つけられるようコメントにmimeを書く
規格で決まってるコマンドはそりゃ付けちゃだめだよ
それ以外は気にいるか気に入らないかの問題でしょう
気にならないなら拡張子を付ける、気に入らないならmailcapが見つけられるようコメントにmimeを書く
137デフォルトの名無しさん
2021/03/29(月) 08:19:14.60ID:wK+S1L2g > それ以外は気にいるか気に入らないかの問題でしょう
違う。互換性の問題
実装言語を変えても、互換性は保たれなければならない
違う。互換性の問題
実装言語を変えても、互換性は保たれなければならない
138デフォルトの名無しさん
2021/03/29(月) 08:22:32.70ID:T/NVAJfs139デフォルトの名無しさん
2021/03/29(月) 08:26:40.81ID:wK+S1L2g OSの仕様として二行目にシバン2を作れって話?w
140デフォルトの名無しさん
2021/03/29(月) 08:35:53.68ID:wK+S1L2g 結局はシバンを/usr/bin/env bashとかにすれば同じこと
141デフォルトの名無しさん
2021/03/29(月) 08:40:37.26ID:T/NVAJfs >>139
まさにその為にPOSIXへ導入された機構なのではないでしょうか?
mailと付いているのはメール方面で発展したからかな?と気になりますが
先頭付近に書いておけばrun-mailcapが検知してくれますよね、vimのモードラインみたいに先頭5行のような明確な判定法ってないんですかね?
ブラウザなんかはヒューリスティックで上手く決めてくれますけど、
まさにその為にPOSIXへ導入された機構なのではないでしょうか?
mailと付いているのはメール方面で発展したからかな?と気になりますが
先頭付近に書いておけばrun-mailcapが検知してくれますよね、vimのモードラインみたいに先頭5行のような明確な判定法ってないんですかね?
ブラウザなんかはヒューリスティックで上手く決めてくれますけど、
142デフォルトの名無しさん
2021/03/29(月) 08:50:40.11ID:T/NVAJfs >>140
シバンが先頭占めてるので、GUIで適当にポチポチする人や、中身知らんけど取り敢えず./scriptで実行しちゃう人にはスルーされちゃうんですよね…
イマイチ強制力がないというか
win、linun、unix、macどこでも同じコマンド/クリックで同じように実行できるのは便利なんですが
シバンが先頭占めてるので、GUIで適当にポチポチする人や、中身知らんけど取り敢えず./scriptで実行しちゃう人にはスルーされちゃうんですよね…
イマイチ強制力がないというか
win、linun、unix、macどこでも同じコマンド/クリックで同じように実行できるのは便利なんですが
143デフォルトの名無しさん
2021/03/29(月) 08:58:49.98ID:wK+S1L2g マジ意味不明
どんな手段でもいいからファイルの上の方に書いてある
なにかに従って実行ファイルを動かすツールをもってこい
話はそれからだろ
どんな手段でもいいからファイルの上の方に書いてある
なにかに従って実行ファイルを動かすツールをもってこい
話はそれからだろ
144デフォルトの名無しさん
2021/03/29(月) 09:14:27.76ID:T/NVAJfs >>143
いや、だからそれがrun-mailcapでは…
ところで、debianのman読むと、最終的にfileコマンドにフォールバックしてmime-typeを決定するとか非常に不吉な事書いてますね!?
うちのfileはシバンから推測(bashとshの区別など)してたと思うので、一旦mailcapを参照する事によるパス非依存性以外に利点がない気がしてきました…
決定アルゴリズムが統一されてないのが課題ですかね
winはもちろん違うでしょうし、unix系でもメーラ/ブラウザは固有の方法で決めてますし
第4のシバンを待つしかないのか!
いや、だからそれがrun-mailcapでは…
ところで、debianのman読むと、最終的にfileコマンドにフォールバックしてmime-typeを決定するとか非常に不吉な事書いてますね!?
うちのfileはシバンから推測(bashとshの区別など)してたと思うので、一旦mailcapを参照する事によるパス非依存性以外に利点がない気がしてきました…
決定アルゴリズムが統一されてないのが課題ですかね
winはもちろん違うでしょうし、unix系でもメーラ/ブラウザは固有の方法で決めてますし
第4のシバンを待つしかないのか!
145デフォルトの名無しさん
2021/03/29(月) 09:16:56.36ID:wK+S1L2g146デフォルトの名無しさん
2021/03/29(月) 09:18:26.85ID:SSJ6OpUN うだうだと意味不明だな
シバンは(低レベル)OS API(exec系)でサポートされてるんじゃなかったかな
mime-typeを仮にサポートしてるOSがあってもせいぜい高級APIでじゃないの
何を言いたいのかさっぱりわからん
シバンは(低レベル)OS API(exec系)でサポートされてるんじゃなかったかな
mime-typeを仮にサポートしてるOSがあってもせいぜい高級APIでじゃないの
何を言いたいのかさっぱりわからん
147デフォルトの名無しさん
2021/03/29(月) 09:30:51.89ID:T/NVAJfs >>146
スレを眺めるに高級環境っぽいので、posixの話はアリかと思いまして
ただ、shを名乗っててもbusyboxとか組み込みだと無さそうな気がしますね(調べてない)
普段コマンドラインに住んでますがすごく便利ですよmailcap
ただ、色々突っ込んで貰ってenvも良さそうな気がしてきました
スレを眺めるに高級環境っぽいので、posixの話はアリかと思いまして
ただ、shを名乗っててもbusyboxとか組み込みだと無さそうな気がしますね(調べてない)
普段コマンドラインに住んでますがすごく便利ですよmailcap
ただ、色々突っ込んで貰ってenvも良さそうな気がしてきました
148デフォルトの名無しさん
2021/03/29(月) 09:33:26.88ID:wK+S1L2g149デフォルトの名無しさん
2021/03/29(月) 09:36:04.57ID:SSJ6OpUN OSレベルでもなくツールで便利だったからかよ?
自分が便利でしかないことをうだうだうだうだとかよw
自分が便利でしかないことをうだうだうだうだとかよw
150デフォルトの名無しさん
2021/03/29(月) 09:36:15.38ID:T/NVAJfs151デフォルトの名無しさん
2021/03/29(月) 09:38:32.42ID:wK+S1L2g152デフォルトの名無しさん
2021/03/29(月) 09:43:42.09ID:SSJ6OpUN mailcapではないがmime-typeをサポートしてるOSがあるんだが。ある意味OSレベルでサポートしてる
作法が多分違うと思うが、それはそれでmime-typeにある意味固執して使うのかなあ?
めんどくささの方が上回りそうだけどw
作法が多分違うと思うが、それはそれでmime-typeにある意味固執して使うのかなあ?
めんどくささの方が上回りそうだけどw
153デフォルトの名無しさん
2021/03/29(月) 09:44:13.43ID:T/NVAJfs >>151
普及運動ですかね…
普及運動ですかね…
154デフォルトの名無しさん
2021/03/29(月) 09:49:41.80ID:SSJ6OpUN 既存の色々を知らなさすぎるのに普及運動とかは無理だろうとしか思えない
OSレベルでサポートしてるOSのでもそんなことやってるヤツ見たことないしな
OSレベルでサポートしてるOSのでもそんなことやってるヤツ見たことないしな
155デフォルトの名無しさん
2021/03/29(月) 09:52:18.11ID:T/NVAJfs156デフォルトの名無しさん
2021/03/29(月) 09:59:52.36ID:Hi4CyJOB157デフォルトの名無しさん
2021/03/29(月) 10:01:28.74ID:wK+S1L2g >>153
普及運動したってmailcapに機能が搭載されてなければ出来ないだろ
だから早くいえmailcapを使うとして
シェルスクリプト作者は何をスレば良いんだ?
実は何もしなくて良いんだろ?w
そもそもmailcap使っても出来ないことだからwww
普及運動したってmailcapに機能が搭載されてなければ出来ないだろ
だから早くいえmailcapを使うとして
シェルスクリプト作者は何をスレば良いんだ?
実は何もしなくて良いんだろ?w
そもそもmailcap使っても出来ないことだからwww
158デフォルトの名無しさん
2021/03/29(月) 10:02:18.72ID:/i/qkskJ webだとみんなmimeでインタプリタ決めるしな
その方面で育つとカルチャーショック
その方面で育つとカルチャーショック
159デフォルトの名無しさん
2021/03/29(月) 10:03:55.77ID:SSJ6OpUN >>158
そういう流れかあ。それっぽいな
そういう流れかあ。それっぽいな
160デフォルトの名無しさん
2021/03/29(月) 10:05:03.53ID:wK+S1L2g × webだとみんなmimeでインタプリタ決めるしな
○ ウェブサーバーだとみんなmimeでインタプリタ決めるしな
ウェブサーバー側の設定でやるから
スクリプトの作者は何もする必要がない
ウェブサーバー側に相当する何かを用意すればいい
○ ウェブサーバーだとみんなmimeでインタプリタ決めるしな
ウェブサーバー側の設定でやるから
スクリプトの作者は何もする必要がない
ウェブサーバー側に相当する何かを用意すればいい
161デフォルトの名無しさん
2021/03/29(月) 10:09:45.64ID:SSJ6OpUN 読めてないんじゃないの。そんな具体的な話でないぞ
162デフォルトの名無しさん
2021/03/29(月) 10:12:06.19ID:wK+S1L2g そういう話だよ
163デフォルトの名無しさん
2021/03/29(月) 10:13:08.06ID:SSJ6OpUN まあ、ご自由に。話が繋がるとは思えないけど
さて
さて
164デフォルトの名無しさん
2021/03/29(月) 10:21:39.61ID:mn0uwvfX 自分で設定するのは面倒、色んな環境の初期設定が揃ってよろしくなってからかな
165デフォルトの名無しさん
2021/03/29(月) 15:38:51.51ID:Hi4CyJOB 潔癖症とか完璧主義者とかがUNIX系のもろもろをキモく感じるのはわかる。
とくに最初のころ。
馴れてくると、だいたい気にならんくなってくる。
それがいいことかどうかはわからんけど。w
とくに最初のころ。
馴れてくると、だいたい気にならんくなってくる。
それがいいことかどうかはわからんけど。w
166デフォルトの名無しさん
2021/03/29(月) 15:48:26.38ID:jeDqT5qX >>126
うちのはデフォルトで/bin/shがzshになってるよ
うちのはデフォルトで/bin/shがzshになってるよ
167デフォルトの名無しさん
2021/03/29(月) 17:08:18.30ID:wK+S1L2g168デフォルトの名無しさん
2021/03/29(月) 17:44:52.06ID:jeDqT5qX169デフォルトの名無しさん
2021/03/29(月) 17:47:55.60ID:T/NVAJfs めっちゃ右翼だなそりゃ…
仕方なく読む專だからわからんのだけど、zshもshっぽく振る舞うモードとかあるんじゃないのさすがに限度ってものがあると思うが
仕方なく読む專だからわからんのだけど、zshもshっぽく振る舞うモードとかあるんじゃないのさすがに限度ってものがあると思うが
170デフォルトの名無しさん
2021/03/29(月) 17:51:37.76ID:jeDqT5qX171デフォルトの名無しさん
2021/03/29(月) 17:53:39.75ID:wK+S1L2g >>168
> macOS Catalina
どーせそういうと思ったw
なんつーか、みんな基礎的な知識がないよな
あ、macOS Catalinaの/bin/shは(POSIXモードの)bash 3.2.57 だ
これからもずっと変わらんだろうよ
> macOS Catalina
どーせそういうと思ったw
なんつーか、みんな基礎的な知識がないよな
あ、macOS Catalinaの/bin/shは(POSIXモードの)bash 3.2.57 だ
これからもずっと変わらんだろうよ
172デフォルトの名無しさん
2021/03/29(月) 17:56:44.94ID:jeDqT5qX173デフォルトの名無しさん
2021/03/29(月) 17:58:03.88ID:jeDqT5qX なおBigSurは最初からzsh
もうbashには戻らんだろうね
もうbashには戻らんだろうね
174デフォルトの名無しさん
2021/03/29(月) 18:01:27.34ID:wK+S1L2g175デフォルトの名無しさん
2021/03/29(月) 18:04:28.54ID:1/gzKsrI ログインシェル と /bin/sh は違うぞ
/bin/sh がなんなの確認してみ
/bin/sh がなんなの確認してみ
176デフォルトの名無しさん
2021/03/29(月) 18:06:21.42ID:jeDqT5qX177デフォルトの名無しさん
2021/03/29(月) 18:07:44.45ID:jeDqT5qX >>175
zshにリンクされてるね
zshにリンクされてるね
178デフォルトの名無しさん
2021/03/29(月) 18:07:48.03ID:wK+S1L2g >>176
俺が聞いたのは、プロンプトになんて表示されるかだ
なぜ質問に答えられないのか?
それだけなんだが?
レスするよりタイプ文字は少ないだろ
ああ面倒だw
答えは、sh-3.2
bash 3.2の3.2だ
なにか言い返す言葉はあるか?
俺が聞いたのは、プロンプトになんて表示されるかだ
なぜ質問に答えられないのか?
それだけなんだが?
レスするよりタイプ文字は少ないだろ
ああ面倒だw
答えは、sh-3.2
bash 3.2の3.2だ
なにか言い返す言葉はあるか?
179デフォルトの名無しさん
2021/03/29(月) 18:08:14.41ID:1/gzKsrI >>176
確かめてないだろw
冷静にもう一度ちゃんと確かめてみ
>macOS Catalina
>以前は手を入れないとダメだったらしいけど
ってのからも明らかにログインシェル=/bin/shだと思ってるだろうし
確かめてないだろw
冷静にもう一度ちゃんと確かめてみ
>macOS Catalina
>以前は手を入れないとダメだったらしいけど
ってのからも明らかにログインシェル=/bin/shだと思ってるだろうし
180デフォルトの名無しさん
2021/03/29(月) 18:10:30.37ID:wK+S1L2g >>177
されてない
それどころかbashにもリンクされてなくて
ファイルサイズはbashとzsh(ほぼ同じぐらい)の1/10程度しかない
これは/bin/shがbashをベースにPOSIXに準拠するだけの機能に
減らしてビルドした縮小版だからだ
されてない
それどころかbashにもリンクされてなくて
ファイルサイズはbashとzsh(ほぼ同じぐらい)の1/10程度しかない
これは/bin/shがbashをベースにPOSIXに準拠するだけの機能に
減らしてビルドした縮小版だからだ
181デフォルトの名無しさん
2021/03/29(月) 18:13:42.46ID:1/gzKsrI >>177
嘘なのかw、マジでそうならなんかおま環くさい
/bin/shがコロコロ変わったら困るから(コロコロ変わる必要もないしな)、なんらか(chsh)でそうなるわけもなく、なんでそうなんか...嘘くさいww
BigSurはまだ更新してないからってことは、Catalinaか...尚更嘘くさい
そんな変なの捨ててクリーンインストールしなさいなww
嘘なのかw、マジでそうならなんかおま環くさい
/bin/shがコロコロ変わったら困るから(コロコロ変わる必要もないしな)、なんらか(chsh)でそうなるわけもなく、なんでそうなんか...嘘くさいww
BigSurはまだ更新してないからってことは、Catalinaか...尚更嘘くさい
そんな変なの捨ててクリーンインストールしなさいなww
182デフォルトの名無しさん
2021/03/29(月) 18:14:08.54ID:wK+S1L2g しかしmacOSの/bin/shが、bashやzshの1/10にまでサイズが減ってるとなると
本来のbashに比べて/bin/shは相当機能が削減されたbashだと思うけど何が減ったんだろう?
/bin/shはbashのインタラクティブシェルとしての機能を削っただけかな?
本来のbashに比べて/bin/shは相当機能が削減されたbashだと思うけど何が減ったんだろう?
/bin/shはbashのインタラクティブシェルとしての機能を削っただけかな?
183デフォルトの名無しさん
2021/03/29(月) 18:16:02.09ID:qWZz7CCC チャーリー浜「...」
184デフォルトの名無しさん
2021/03/29(月) 18:16:35.62ID:wK+S1L2g そういやqiitaかなんかでmacOSの/bin/shを最新のbashに
アップデートしましょうとか書いてあった記事があったな
Apple版bashじゃなくてbash本家からビルドしてsudoでcpしてw
システム壊す気かって思ったwww
アップデートしましょうとか書いてあった記事があったな
Apple版bashじゃなくてbash本家からビルドしてsudoでcpしてw
システム壊す気かって思ったwww
185デフォルトの名無しさん
2021/03/29(月) 18:25:27.61ID:1/gzKsrI186デフォルトの名無しさん
2021/03/29(月) 18:30:46.99ID:wK+S1L2g ふ、黙った所を見ると終わったかね?素人が俺様に敵うわけねーだろ
187デフォルトの名無しさん
2021/03/29(月) 18:33:56.47ID:1/gzKsrI お前はそれを冗談で言ってなさそうなとこがな
188デフォルトの名無しさん
2021/03/29(月) 18:34:14.26ID:5I9+wJCt 動いてるなら必要十分だよな
bashはもうバージョン5だし、補完やらのAPIを外部に晒したのが成功して、対話モードが随分良くなった
2つ入れるのはアリだと思う
名前も念の為分けといた方がいいかもしれない(俺はサボったけど)
ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
外部コマンド使え
bashはもうバージョン5だし、補完やらのAPIを外部に晒したのが成功して、対話モードが随分良くなった
2つ入れるのはアリだと思う
名前も念の為分けといた方がいいかもしれない(俺はサボったけど)
ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
外部コマンド使え
189デフォルトの名無しさん
2021/03/29(月) 18:35:37.53ID:wK+S1L2g > ただ、呪文のようなパラメータ置換をモリモリ実装してるのは頭おかしいと思う
> 外部コマンド使え
1/1000ぐらいにパフォーマンス下がるぞw
数値は適当だが
> 外部コマンド使え
1/1000ぐらいにパフォーマンス下がるぞw
数値は適当だが
190デフォルトの名無しさん
2021/03/29(月) 18:38:16.17ID:wK+S1L2g 外部コマンドはパフォーマンスが大幅に低下するだけじゃなく
改行をうまくあつかないという問題がある
変数には改行を入れられるが、外部コマンドだと行区切りとして扱われる
改行をうまくあつかないという問題がある
変数には改行を入れられるが、外部コマンドだと行区切りとして扱われる
191デフォルトの名無しさん
2021/03/29(月) 18:46:02.19ID:CpwX2Qd/ そういえばCatalinaだとこれ↓見ろってでますね
https://support.apple.com/kb/HT208050
https://support.apple.com/kb/HT208050
192デフォルトの名無しさん
2021/03/29(月) 18:59:51.55ID:wK+S1L2g >>191
> macOS Catalina の Bourne 互換シェルとのスクリプトの互換性をテストするには、
> 「/var/select/sh」を「/bin/bash」「/bin/dash」または「/bin/zsh」に変更してみます。
それみてmacOSの/bin/shのサイズが1/10しかない理由がわかったw
man shすれば書いてあったが、macOSの/bin/shはシェル本体じゃなくて
シェル(/var/select/sh、デフォルトは/bin/bashへのシンボリックリンク)
を起動するためのコマンドなのか
どおりでstrings使ったらbashやzshといった文字が見つかるわけだ
/bin/sh をデフォルトのbashから別のシェルに変更したい場合は
シンボリックリンクを変更すれば出来るんだな
ってことはやっぱり単にPOSIXモードが有効になったというだけのbashなのかもな
> macOS Catalina の Bourne 互換シェルとのスクリプトの互換性をテストするには、
> 「/var/select/sh」を「/bin/bash」「/bin/dash」または「/bin/zsh」に変更してみます。
それみてmacOSの/bin/shのサイズが1/10しかない理由がわかったw
man shすれば書いてあったが、macOSの/bin/shはシェル本体じゃなくて
シェル(/var/select/sh、デフォルトは/bin/bashへのシンボリックリンク)
を起動するためのコマンドなのか
どおりでstrings使ったらbashやzshといった文字が見つかるわけだ
/bin/sh をデフォルトのbashから別のシェルに変更したい場合は
シンボリックリンクを変更すれば出来るんだな
ってことはやっぱり単にPOSIXモードが有効になったというだけのbashなのかもな
193デフォルトの名無しさん
2021/03/29(月) 19:55:41.76ID:1/gzKsrI >>191
/bin/dash ってあるから、
次か次の次かで /bin/sh は bash を捨てて(流石に捨てるだろう3ベースのなんて。kshがまだあるから同じように残るか??) の dash になる可能性が大な感じ?
/bin/dash ってあるから、
次か次の次かで /bin/sh は bash を捨てて(流石に捨てるだろう3ベースのなんて。kshがまだあるから同じように残るか??) の dash になる可能性が大な感じ?
194デフォルトの名無しさん
2021/03/29(月) 20:03:13.24ID:wK+S1L2g >>193
bashからdashに変更すると互換性が壊れるからなぁ
まあそれをUbuntuがやってのけたから
互換性気にしないAppleならやるかもな
保守が続いてるdashに変更するか
それともAppleがbashをメンテンスし続けるか
後者でもほぼ修正はないんだから、大変ではないだろうな
bashからdashに変更すると互換性が壊れるからなぁ
まあそれをUbuntuがやってのけたから
互換性気にしないAppleならやるかもな
保守が続いてるdashに変更するか
それともAppleがbashをメンテンスし続けるか
後者でもほぼ修正はないんだから、大変ではないだろうな
195デフォルトの名無しさん
2021/03/29(月) 20:07:19.27ID:KEZ/XNTe196デフォルトの名無しさん
2021/03/29(月) 20:10:44.21ID:1/gzKsrI Appleでメンテするのがめんどくさくなって捨てるのは定番
移行を即すためにも最後のあるんだろうし、dashをも入れてるのは 意味がある ことだろう
Appleの準備が終わったら&Appleが移行期間が終わりと見なしたら変わるだろうな
bashに固執することなんてないし
移行を即すためにも最後のあるんだろうし、dashをも入れてるのは 意味がある ことだろう
Appleの準備が終わったら&Appleが移行期間が終わりと見なしたら変わるだろうな
bashに固執することなんてないし
197デフォルトの名無しさん
2021/03/29(月) 21:01:40.15ID:wK+S1L2g bashは機能拡張とかいうレベルのメンテはしなくていいけど
もしかしたらこれから新たな脆弱性が見つかる可能性もあるからね
そうなると古いbashは公式にはメンテされない
Appleが独自で修正を入れる必要がある
/bin/sh(=/bin/bash)はAppleが手を入れてるからGPLv3だと困るとして
まったく手を入れなくていいとなった場合
macOSに新しいbashをバンドルすることはあるだろうか?
つまり古いbashはいずれにしても問題があるわけで更新しなければいけない
だから/bin/shをdashに変更した後、bash5をバンドルするかなってこと?
それが無理ならdashに変更したらbashを削除することも有り得そう
それを見越してzshに移行しろって言ってるのかもな
もしかしたらこれから新たな脆弱性が見つかる可能性もあるからね
そうなると古いbashは公式にはメンテされない
Appleが独自で修正を入れる必要がある
/bin/sh(=/bin/bash)はAppleが手を入れてるからGPLv3だと困るとして
まったく手を入れなくていいとなった場合
macOSに新しいbashをバンドルすることはあるだろうか?
つまり古いbashはいずれにしても問題があるわけで更新しなければいけない
だから/bin/shをdashに変更した後、bash5をバンドルするかなってこと?
それが無理ならdashに変更したらbashを削除することも有り得そう
それを見越してzshに移行しろって言ってるのかもな
198デフォルトの名無しさん
2021/03/29(月) 21:01:56.86ID:wK+S1L2g つまりbash用スクリプトはmacOSで動かないわけで、
bashを入れるためにはHomebrewを使わなければならないわけで
そうするとbashからdash(POSIX準拠)に書き直す必要があるんじゃないか?w
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hatena
blog.com/entry/2020/03/03/100000
これどれくらいbash依存してるんだろう?
bashを入れるためにはHomebrewを使わなければならないわけで
そうするとbashからdash(POSIX準拠)に書き直す必要があるんじゃないか?w
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hatena
blog.com/entry/2020/03/03/100000
これどれくらいbash依存してるんだろう?
199デフォルトの名無しさん
2021/03/29(月) 21:13:02.60ID:wK+S1L2g Homebrewのインストーラー
https://raw.githubusercontent.com/Homebrew/install/master/install.sh
ざっと見てみたが、結構長いな
配列使ってるところがread -n 1が少し厄介だな
POSIX準拠させるよりもzshで動くようにしたほうがいいのかもしれんな
しかしこれどうやってテストしたんだろうか
https://raw.githubusercontent.com/Homebrew/install/master/install.sh
ざっと見てみたが、結構長いな
配列使ってるところがread -n 1が少し厄介だな
POSIX準拠させるよりもzshで動くようにしたほうがいいのかもしれんな
しかしこれどうやってテストしたんだろうか
200デフォルトの名無しさん
2021/03/29(月) 21:49:47.52ID:wK+S1L2g ふむ read -n 1 = getchのPOSIX準拠コードはあるようだ
https://qiita.com/miminashi/items/ad060c43c130581b412a
getch() {
old=$(stty -g)
stty raw -echo min 0 time 1
printf '%s' $(dd bs=1 count=1 2>/dev/null)
stty $old
}
じゃああとは配列の置き換えが面倒なだけだな
https://qiita.com/miminashi/items/ad060c43c130581b412a
getch() {
old=$(stty -g)
stty raw -echo min 0 time 1
printf '%s' $(dd bs=1 count=1 2>/dev/null)
stty $old
}
じゃああとは配列の置き換えが面倒なだけだな
201デフォルトの名無しさん
2021/03/30(火) 22:27:21.29ID:jfNjkEti こうなったら世界唯一のリードオンリー言語、applescriptで書き直すしかないな
202デフォルトの名無しさん
2021/03/31(水) 11:33:02.43ID:AtIsL56M arrayも使えないのは正直つらい
コマンドだけど魔改造でびっくらこいたのはlinux版のcolumn.1(kernel.org配布なんで公式のはず)だなあ
linuxなのに-hも--helpも受け付けないbsd版使ってたわ
--jsonとか--treeとかもはやcolumnの域を超越してる
コマンドだけど魔改造でびっくらこいたのはlinux版のcolumn.1(kernel.org配布なんで公式のはず)だなあ
linuxなのに-hも--helpも受け付けないbsd版使ってたわ
--jsonとか--treeとかもはやcolumnの域を超越してる
203デフォルトの名無しさん
2021/03/31(水) 12:20:25.54ID:ekNiD538 配列なんていらんと思ってるけど、何に使ってるか聞いていい?
できれば難しいケースでw
できれば難しいケースでw
204デフォルトの名無しさん
2021/03/31(水) 12:34:19.85ID:AtIsL56M ごめん、単語分割めんどいので全部突っ込みます
205デフォルトの名無しさん
2021/03/31(水) 12:37:32.99ID:ekNiD538 >>204
https://github.com/koalaman/shellcheck/wiki/SC2086
こうやりたいのなら
options="-j 5 -B"
make $options file
こうやればいい
make_with_flags() { make -j 5 -B "$@"; }
make_with_flags file
配列はやっぱり、いらんのよなぁ
https://github.com/koalaman/shellcheck/wiki/SC2086
こうやりたいのなら
options="-j 5 -B"
make $options file
こうやればいい
make_with_flags() { make -j 5 -B "$@"; }
make_with_flags file
配列はやっぱり、いらんのよなぁ
206デフォルトの名無しさん
2021/03/31(水) 12:43:15.98ID:ekNiD538 単語分割は値にスペースが入ってるときに困るんで基本使わないよ。
その上で配列いらんと思ってる。>>205に書いた通り
その上で配列いらんと思ってる。>>205に書いた通り
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 空自機レーダー照射、音声データ公開 中国 ★5 [蚤の市★]
- 【速報】 米国政府、中国が日本の自衛隊にレーダー照射を批判、同事案で中国を批判するのは初めて ★2 [お断り★]
- 防衛省「了解は言っていない」 [966095474]
- 防衛省「日本は正当な対応をした。危険行為をしたのは中国。中国は再発防止を徹底せよ」 [834922174]
- 中国、日本人tiktokの収益剥奪開始wmwmwmwmwmwm [834922174]
- 【悲報】高市「円安進むから無駄な予備費積むな?逆に円高リスクに備えるためにも予備費必要なの!😡」😨 [359965264]
- 【画像】「無料男フェラ」にハマるノンケ男性が増加「金かからない」「女より気持ちいい」 [732289945]
- 元空自「日本側は火気管制レーダーともロックオンとも言っていない。中国の探索用レーダーの主張と矛盾しない」高市 [931948549]
