アカウント名:
パスワード:
bashは、Bshellの方言に過ぎない。
『まるちっくす』に対し、自らを『うにっくす』って名乗ったのには、美学を感じるが。
自分の名前を冠しておごり昂ぶっている、美学ゼロの者どもが、bashなんて言い始めて、、、
とほほだね、まったく。
名の呼び方にこだわるならBshellとか微妙な言い方せんでBourne Shell と書いたらどうなのよと。つーか、bashの正式名称がBourne Again Shellだと知ってこういうこと言い出すのかねこの人は。
#はいはい釣られました釣られましたよと
>つーか、bashの正式名称がBourne Again Shellだと知ってこういうこと言い出すのかねこの人は。
釣りではなくて本当に bash = ベル研由来の sh だと思ってる奴が無視できない量存在していてですね・・・
たぶん、というかほぼ間違いなく君の周りだけだろうから気にしなくていいよ。
シェルスクリプトちょっとでもやればshとbashの差は誰でも意識することになる。逆に言えばまっとうにシェルを使わない人にはBshell(?)がどーたらなんて気にするわけもない。
> 今時なら、/bin/shも/bin/bashも実体は同じだったりしませんか?
「今時なら」じゃなくって「Linuxなら」でしょ。
bashが/binじゃなくて/usr/local/binに入ってるレガシーシステムもまだありますよ
でも、現実的にbashが使えない環境なんて滅多に無いんだし、あえて自分がそういう環境を使っているのでなければshに拘る意味は薄いかと。スクリプトをperlやrubyやpythonで書くべきでないなんて言うのと同じ。
#!/bin/sh
って書いておいて、bashの拡張文法使うのは反則だと思います。
/bin/sh = bashなのはLinuxだけでしょ。
tietew@******:~$ file /bin/sh/bin/sh: symbolic link to `dash'tietew@******:~$ sh$ echo {a,b,c}{a,b,c}
#!/usr/bin/env bash
>でもshとして使ったときとbashとして使ったときと挙動が違うでしょ?
#!/bin/sh なスクリプトでも、bash 独自の機能がほとんど使えちゃいますねぇ。っていうか、使えなくなる機能ってあるの???違うのってインタラクティブシェルとして起動した時の .bashrc とかの読み込みぐらいじゃないの?
>現実的にbashが使えない環境なんて滅多に無いんだし
それが結構あるんだよ。最小構成でインストールされたsolarisとか。なので、必要に迫られない限りはshでも動くスクリプト書くべきだとは思ってる。たとえば$()とか無理に使わなくても``で十分なので、基本的に``で・・・とか。
とは言っても、shだとfunction内でlocal宣言すら出来ないとか、機能面での欠落は気にはなるので、「bashが存在すると確信できるターゲット」向けに大規模なものを作る時だけは #!/bin/bashと明示した上でbash依存のスクリプトを書くのはアリかなと。#!/bin/shと宣言してshで動かないコードを書くのは最悪・・・。
% uname -mprsDarwin 9.6.0 i386 i386% which sh/bin/sh% sh --versionGNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)Copyright (C) 2005 Free Software Foundation, Inc.
>「最小構成でインストールされたSolaris」というのは、「結構ある」と言わしめるほどインストールベースの大きいもの?
某プロバイダのサーバを運用してるけど最小構成が当たり前ですよー。その上で必要なものだけを選択して入れる。セキュリティの原則として。
>名の呼び方にこだわるならごめんね、、、私は別に、名前・名の呼び方 に拘ってはいないんだけど、誤解させてごめん。linuxの節操のなさに苦労してるもんで、つい愚痴になってしまいました。
core-shell として、仕様は固定しておいて、Bsellの仕様は固定しておいて、もしどうしても、必要があれば、拡張した他のshellを呼び出すってEx記述だけを許して、(Ex記述記述ってのは、拡張shellをロードして使うんじゃなくて、拡張コマンドとしてって意味。まあ確かに。それってshellの拡張?って感じではあるが、単に他sellのソースとクロスしてコンパ
forkするのも自由。多機能化して便利にもっていくのも自由。新ツールとして拡張部を分けるのも自由。増えすぎて使い難いのなら、減らせば良い。使い分けるのも自由でしょ。フリーソフトなんだから。
あなたの所はぜひそうすれば良いんですよ。人の自由を阻害したいと思うのなら、自分で作ってソースを隠して売れば良い。デファクトにもっていけばいい。それだけ。
全然関係ないけど "Bourne Again" って "born again"(生まれ変わり)にかけてあるのかな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
なに? bashって。 Bshell の事だよね! <言い切る (スコア:-1, 荒らし)
bashは、Bshellの方言に過ぎない。
『まるちっくす』に対し、自らを『うにっくす』って名乗ったのには、美学を感じるが。
自分の名前を冠しておごり昂ぶっている、美学ゼロの者どもが、bashなんて言い始めて、、、
とほほだね、まったく。
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:1, おもしろおかしい)
名の呼び方にこだわるならBshellとか微妙な言い方せんで
Bourne Shell と書いたらどうなのよと。
つーか、bashの正式名称がBourne Again Shellだと知って
こういうこと言い出すのかねこの人は。
#はいはい釣られました釣られましたよと
Re: (スコア:0)
>つーか、bashの正式名称がBourne Again Shellだと知ってこういうこと言い出すのかねこの人は。
釣りではなくて本当に bash = ベル研由来の sh だと思ってる奴が無視できない量存在していてですね・・・
Re: (スコア:0)
たぶん、というかほぼ間違いなく君の周りだけだろうから
気にしなくていいよ。
シェルスクリプトちょっとでもやればshとbashの差は誰でも意識することになる。
逆に言えばまっとうにシェルを使わない人にはBshell(?)がどーたらなんて
気にするわけもない。
Re: (スコア:0)
とか言い出すんだと思うので、その指摘は的外れなのでは?
でもって、もう一方でおっしゃられてる件についても、世の bashism
とか揶揄されるものの大半は確信犯的なものではなくて、sh と bash
の区別ができて無いことによるものだと思いますので、
> シェルスクリプトちょっとでもやればshとbashの差は誰でも意識することになる
というのは少々楽観的に過ぎるのではないでしょうか。
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:2, 参考になる)
/bin/shって本物は触ったことないかも。。
そもそも/bin/shのソースって一般人が入手できるんだろうか。と思ったらあるみたいですね。
http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:3, すばらしい洞察)
> 今時なら、/bin/shも/bin/bashも実体は同じだったりしませんか?
「今時なら」じゃなくって「Linuxなら」でしょ。
いや今時でも (スコア:1, 参考になる)
bashが/binじゃなくて/usr/local/binに入ってるレガシーシステムもまだありますよ
Re: (スコア:0)
スクリプトはshで書いて、その他のシェルはインタラクティブにだけ使うようにしたほうがよいと思う。
Re: (スコア:0)
と信じてman bashしつつ#!/bin/shなスクリプト書いてたらちゃんと動かない。
Ubuntuでは/bin/sh->/bin/dashと気付くのに少々掛かりました。
Re: (スコア:0)
でも、現実的にbashが使えない環境なんて滅多に無いんだし、あえて自分がそういう環境を使っているのでなければshに拘る意味は薄いかと。
スクリプトをperlやrubyやpythonで書くべきでないなんて言うのと同じ。
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:2, すばらしい洞察)
って書いておいて、bashの拡張文法使うのは反則だと思います。
/bin/sh = bashなのはLinuxだけでしょ。
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:1)
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:1)
Re: (スコア:0)
Re: (スコア:0)
(’・ω・`)
Re: (スコア:0)
「/bin/sh = bashならばLinux である」はおおむね正しいと思われます。
ちなみに、逆は必ずしも真ではなく、/bin/sh -> busybox である Linux ディストリビューションも存在します。
Re: (スコア:0)
>でもshとして使ったときとbashとして使ったときと挙動が違うでしょ?
#!/bin/sh なスクリプトでも、bash 独自の機能がほとんど使えちゃいますねぇ。
っていうか、使えなくなる機能ってあるの???
違うのってインタラクティブシェルとして起動した時の .bashrc とかの読み込みぐらいじゃないの?
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:1, 参考になる)
>現実的にbashが使えない環境なんて滅多に無いんだし
それが結構あるんだよ。最小構成でインストールされたsolarisとか。なので、必要に迫られない限りはshでも動くスクリプト書くべきだとは思ってる。たとえば$()とか無理に使わなくても``で十分なので、基本的に``で・・・とか。
とは言っても、shだとfunction内でlocal宣言すら出来ないとか、機能面での欠落は気にはなるので、「bashが存在すると確信できるターゲット」向けに大規模なものを作る時だけは #!/bin/bashと明示した上でbash依存のスクリプトを書くのはアリかなと。#!/bin/shと宣言してshで動かないコードを書くのは最悪・・・。
ちがう [Re:なに? bashって。 Bshell の事だよね! <言い切る] (スコア:1, 参考になる)
% uname -mprs
Darwin 9.6.0 i386 i386
% which sh
/bin/sh
% sh --version
GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)
Copyright (C) 2005 Free Software Foundation, Inc.
Re: (スコア:0)
えーと。
「最小構成でインストールされたSolaris」というのは、「結構ある」と言わしめるほどインストールベースの大きいもの?
# それ以外の点にはほぼ全面的に同意。
Re: (スコア:0)
>「最小構成でインストールされたSolaris」というのは、「結構ある」と言わしめるほどインストールベースの大きいもの?
某プロバイダのサーバを運用してるけど最小構成が当たり前ですよー。
その上で必要なものだけを選択して入れる。セキュリティの原則として。
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア:1)
おっしゃるとおり、「一部のLinuxでは」の間違いですね。
しかも、自分のPC(ubuntu)でls -l /bin/shしたら、dashでした orz
Re: (スコア:0)
>名の呼び方にこだわるなら
ごめんね、、、私は別に、名前・名の呼び方 に拘ってはいないんだけど、誤解させてごめん。linuxの節操のなさに苦労してるもんで、つい愚痴になってしまいました。
core-shell として、仕様は固定しておいて、
Bsellの仕様は固定しておいて、
もしどうしても、必要があれば、拡張した他のshellを呼び出すってEx記述だけを許して、(Ex記述記述ってのは、拡張shellをロードして使うんじゃなくて、拡張コマンドとしてって意味。まあ確かに。それってshellの拡張?って感じではあるが、単に他sellのソースとクロスしてコンパ
Re: (スコア:0)
forkするのも自由。
多機能化して便利にもっていくのも自由。
新ツールとして拡張部を分けるのも自由。
増えすぎて使い難いのなら、減らせば良い。
使い分けるのも自由でしょ。
フリーソフトなんだから。
あなたの所はぜひそうすれば良いんですよ。
人の自由を阻害したいと思うのなら、自分で作ってソースを隠して売れば良い。
デファクトにもっていけばいい。それだけ。
Re: (スコア:0)
bsh がベル研で、csh が BSD、ksh が systemV、bash は GNU だと思ったんだけど。
そういう意味で BSD が云々と言う人が bash を嫌がるのは判り易くはありますよね。
bsh+csh で腐ってしまったものを bash 一本でどうにかしようと整理しているのだと
考えれば linux の方が節操はあるようにも考えられませんでしょうか。
かと思えば ash/dash に zsh だとか言い出すのが節操が無いというのは同意します。
Re: (スコア:0)
全然関係ないけど "Bourne Again" って "born again"(生まれ変わり)にかけてあるのかな。