アカウント名:
パスワード:
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」というのは、「結構ある」と言わしめるほどインストールベースの大きいもの?
某プロバイダのサーバを運用してるけど最小構成が当たり前ですよー。その上で必要なものだけを選択して入れる。セキュリティの原則として。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
なに? bashって。 Bshell の事だよね! <言い切る (スコア:-1, 荒らし)
bashは、Bshellの方言に過ぎない。
『まるちっくす』に対し、自らを『うにっくす』って名乗ったのには、美学を感じるが。
自分の名前を冠しておごり昂ぶっている、美学ゼロの者どもが、bashなんて言い始めて、、、
とほほだね、まったく。
Re: (スコア:1, おもしろおかしい)
名の呼び方にこだわるならBshellとか微妙な言い方せんで
Bourne Shell と書いたらどうなのよと。
つーか、bashの正式名称がBourne Again Shellだと知って
こういうこと言い出すのかねこの人は。
#はいはい釣られました釣られましたよと
Re:なに? bashって。 Bshell の事だよね! <言い切る (スコア: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