Solaris教えてスレッド 其の26
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2007/03/23(金) 02:45:28過去に同じような質問が出ていないか確かめてから書き込みましょう。
・使用機種/OS Ver/何をしたか は、書きましょう。
・質問者は問題が解決したら、どのように解決したか報告しましょう。
・回答者は、自分も質問者になることを忘れぬように。
・荒らしは、スルーで。
また、質問する前にまずはdocs.sun.comのマニュアルを読みましょう。
「System Administrator Collection - Japanese」の「Solarisのシステム管理」
各種は必読です。 http://docs.sun.com/app/docs/prod/solaris?l=ja
X86版固有の話題/インストールの質問は専用スレがあるのでそちらで。
なんとなくSolaris/x86 part9
http://pc11.2ch.net/test/read.cgi/unix/1167023247/
前スレ
Solaris教えてスレッド 其の25
http://pc11.2ch.net/test/read.cgi/unix/1165590827/
0328326
2007/04/05(木) 16:10:060329322
2007/04/05(木) 16:14:200330名無しさん@お腹いっぱい。
2007/04/05(木) 16:15:50季語を入れろ。
この場合、
ZONE=zone export ZONE
とかすればよかったのに・・・
0331名無しさん@お腹いっぱい。
2007/04/05(木) 16:46:49POSIX 読め。
0332名無しさん@お腹いっぱい。
2007/04/05(木) 17:08:540333名無しさん@お腹いっぱい。
2007/04/05(木) 17:29:32ZONE=hogehoge コマンド
echo $ZONE
↑、ってやった場合、ZONE=hogehogeの代入は一時的だから、
adm が表示されるのが正しいよね。
ところが、上の「コマンド」が、exportの場合だけ
動作が違うというのはやはりおかしいよ。
環境変数の問題だけじゃなく、
シェル変数にまで影響を与える(シェル変数のZONEの内容まで変わる)
というのもおかしい。
LANG=C man hoge
ってやっても、LANGの値は、もともと jaだったとすると変わらないでしょ。
0334名無しさん@お腹いっぱい。
2007/04/05(木) 17:43:18おまえはPOSIX読んだことあるのか?
0335名無しさん@お腹いっぱい。
2007/04/05(木) 18:15:17$ ADAM=vt100 ; export ADAM
が正しいshの文法なんでしょーに。
0336名無しさん@お腹いっぱい。
2007/04/05(木) 18:30:10なんで name=value 前付けのコマンド起動だとサブシェル呼ばなきゃいけないんだ?
そんなことどこに書いてある? シェルの組込みコマンドなのにサブシェル起動するわけないだろ。
わいとんかをのれは。
0337名無しさん@お腹いっぱい。
2007/04/05(木) 18:36:21じゃあ、
ZONE=adm
ZONE=hoge echo ZONE
echo $ZONE
の時、hogeじゃなくてadmが表示されるのをどう説明するつもり?
で、↑の echoを exportに変えると今度はhogeに変わる。
こりゃバグだろ。
0338名無しさん@お腹いっぱい。
2007/04/05(木) 18:41:07コマンドが動作する間だけ環境変数に設定されてる。終わったらもどる。
どこがどうバグだ? 勝手におまいの脳内に意味不明な仕様でっちあげてるだけだろうが。
0339名無しさん@お腹いっぱい。
2007/04/05(木) 18:42:27>終わったらもどる。
戻ってないんだが。戻ってないからバグだろ。
0340名無しさん@お腹いっぱい。
2007/04/05(木) 18:44:44これに尽きるな。
0341名無しさん@お腹いっぱい。
2007/04/05(木) 18:46:58Solarisの、少し前のバージョンのshだったと思うが、
name=value が接頭された後に内部コマンドが来る場合のみ、
おかしな動作をすることがあった。
$ unset A
$ A=a echo hoge
$ echo $A
a ← 表示しちゃ駄目なはず。
とかね。
0342名無しさん@お腹いっぱい。
2007/04/05(木) 18:48:56尽きてないじゃん。
自分で「終わったらもどる」って言ってるのに
終っても環境変数が元に戻らない。自己矛盾してる。
しかも、環境変数とは本来無関係のシェル変数の値まで
環境変数と同じに変化してしまっている。
0343322
2007/04/05(木) 18:59:210344名無しさん@お腹いっぱい。
2007/04/05(木) 19:05:12サブシェルって言ってるのは便宜上だろ。
サブシェル以外で表現すると長くなるから。
じゃあ、サブシェル以外の等価コマンドで考えてみよう。
一般に、
ZONE=adm command
は、
TMP=$ZONE; ZONE=adm; export ZONE
command
unset ZONE; ZONE=$TMP; unset TMP
と等価である。
すると、
ZONE=adm export ZONE
は、
TMP=$ZONE; ZONE=adm; export ZONE
export ZONE
unset ZONE; ZONE=$TMP; unset TMP
と等価だから、
ZONEが exportされたままになるのはおかしい。
0345名無しさん@お腹いっぱい。
2007/04/05(木) 19:08:07それが一番重要なんだけどぞーん。
0346名無しさん@お腹いっぱい。
2007/04/05(木) 19:23:55ふむ。
ソースを見ていないから、当てずっぽうになるけど、
aを表示させないようにするには、わざわざそうならないような処理を追加する必要がありそうだもんな。
0347名無しさん@お腹いっぱい。
2007/04/05(木) 20:28:53ソースを比べてみたら?双方ともユーザに開かれてるんだからさ。
0348名無しさん@お腹いっぱい。
2007/04/05(木) 20:41:45そーっすねえ。
0349名無しさん@お腹いっぱい。
2007/04/05(木) 20:58:360350名無しさん@お腹いっぱい。
2007/04/05(木) 21:12:070351名無しさん@お腹いっぱい。
2007/04/05(木) 21:18:32日本語でお願いします。
あるいはshスクリプトで。
0352名無しさん@お腹いっぱい。
2007/04/05(木) 22:49:350353名無しさん@お腹いっぱい。
2007/04/05(木) 23:14:540354名無しさん@お腹いっぱい。
2007/04/05(木) 23:21:33echo "ぞーんゾ〜ヌしつこい奴はガロガ"
こんな感じ?>>351
0355名無しさん@お腹いっぱい。
2007/04/06(金) 00:18:32そっくり /dev/ヌルヌル へ書き込んだら?
0356名無しさん@お腹いっぱい。
2007/04/06(金) 14:55:31> と等価である。
この仮定が間違ってるんじゃね?
0357名無しさん@お腹いっぱい。
2007/04/06(金) 16:36:43前のバージョンのshだけじゃなくて、今現在の Solaris10 11/06版でも
そのバグ、残ってるよ。
$ uname -r
5.10
$ unset A
$ A=a echo hoge
hoge
$ echo $A
a
ちなみに、オレも >>344 に同意。
exportで、;なしでもエクスポートされるのはバグだと思う。
0358名無しさん@お腹いっぱい。
2007/04/06(金) 17:37:07interface.c:147: error: implicit declaration of function `alloca'
interface.c:162: error: too many arguments to function `readdir_r'
*** Error code 1
make: Fatal error: Command failed for target `interface.lo'
0359名無しさん@お腹いっぱい。
2007/04/06(金) 17:43:58>>90 さんが、あなたとほとんど同じ質問をして、解決しているようです。
>>90 からの流れを読んでみましょう。
0360名無しさん@お腹いっぱい。
2007/04/06(金) 18:04:35>90 は僕です。未解決のままなんですが。
0361名無しさん@お腹いっぱい。
2007/04/06(金) 18:11:470362名無しさん@お腹いっぱい。
2007/04/06(金) 18:13:210363名無しさん@お腹いっぱい。
2007/04/06(金) 18:16:11ttp://news21.2ch.net/test/read.cgi/news4plus/1%3174623990/
東京都の人は、ぜひ読んでみてください。
現在、朝鮮総連や民団その他の反日団体が、総がかりで浅野を応援しています。
浅野が知事になれば、たぶん東京は終了します。
0364名無しさん@お腹いっぱい。
2007/04/06(金) 18:43:55そろそろ大きな地震が来るんだから首都機能はいらんだろ。
金融関係もサーバーは関西へ冗長化した後だし。。。
0365名無しさん@お腹いっぱい。
2007/04/06(金) 20:35:050366名無しさん@お腹いっぱい。
2007/04/06(金) 22:11:59バカ無党派層は黙って石原に入れとけ
0367名無しさん@お腹いっぱい。
2007/04/06(金) 22:33:41ZONE厨と同程度か?
0368名無しさん@お腹いっぱい。
2007/04/06(金) 22:37:42ハッ
ゾーンゾーンゾーン
イェ
ゾーンゾーンゾーン
イェ
ゾーンゾーンゾーン
イェイェイェア
0369名無しさん@お腹いっぱい。
2007/04/07(土) 02:04:140370名無しさん@お腹いっぱい。
2007/04/07(土) 09:45:320371名無しさん@お腹いっぱい。
2007/04/07(土) 21:08:08一通り遊んで飽きたので、今は消してFC6を入れ直してますが、
ソルテンの次の号(4/07とか?)はそろそろ出ないんでしょうか?
もうじきFC7も出そうなので、その前にソルテンを先に入れて
遊んでおきたいのですが・・
0372名無しさん@お腹いっぱい。
2007/04/07(土) 23:05:210373名無しさん@お腹いっぱい。
2007/04/07(土) 23:41:040374名無しさん@お腹いっぱい。
2007/04/07(土) 23:43:45Standard UNIX Socketで待ち受けたいんじゃない?
TCP/IPじゃなくて。
0375名無しさん@お腹いっぱい。
2007/04/07(土) 23:59:13レイヤーが違う。UNIX socketでもTCP/IPは当然使える。
0376名無しさん@お腹いっぱい。
2007/04/08(日) 00:05:29ん???
0377名無しさん@お腹いっぱい。
2007/04/08(日) 00:17:070378名無しさん@お腹いっぱい。
2007/04/08(日) 00:20:19きっとUNIXドメインソケットの話。
0379名無しさん@お腹いっぱい。
2007/04/08(日) 00:23:50SolarisのXFSってUNIXドメインソケットで待ち受けできない…?
0380名無しさん@お腹いっぱい。
2007/04/08(日) 00:35:29をいをい.... トンデモ説発射されました。
0381名無しさん@お腹いっぱい。
2007/04/08(日) 00:48:050382381
2007/04/08(日) 00:54:070383372
2007/04/08(日) 00:54:38Solaris 10のX Font ServerってUNIXドメインソケットで待ち受けさせることは
できますか?
0384名無しさん@お腹いっぱい。
2007/04/08(日) 01:29:17おれも半分わかってて、7100/tcpで待ち受けしてるて答えたからw
0385名無しさん@お腹いっぱい。
2007/04/08(日) 02:38:05そう、キミは間違ってないよw
0386名無しさん@お腹いっぱい。
2007/04/09(月) 10:42:01export コマンド、つまり組込みコマンドそのものが env に渡せない。
Sun で shell で組込みコマンドの一部も env に渡せるように直したて、なにかバグいれたかなというか、そもそも「組込み」関数のexport を渡せるようにした時点で、その仕様が明確でなくて、二つ以上の解釈があることに気づいてないに一票。
linux, FC5の実行例:
GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
dell-w2k-note$ XXX=abc
dell-w2k-note$ env XXX=yyy echo $XXX
abc
dell-w2k-note$ env XXX=yyy export XXX
env: export: そのようなファイルやディレクトリはありません
dell-w2k-note$ echo $XXX
abc
「組込み」関数を呼べるようにしてしまったら、呼出側のシェルの環境で(実行する組込み関数の中で)、env で設定した変数の値を使えるようにしなければあまり意味がない。ここまではOK.だけど、export の場合には
- この解釈にしたがって、もとの環境の環境変数の値を変更してしまうという
斬新な解釈も可能だが、
- いいや、やっぱりenv の仕様考えたら、変更しちゃ駄目という意見も妥当。
export を呼べるようにしてしまったのが失敗という気がする。むかし、最初のUNIX のshell で "cd" コマンドを外部コマンドとして作ってしまい、cd コマンドを実行しても、カレントディレクトリが移動しないと首を捻った話を思い出した。
(私ではないよ。K&R のかThompsonか誰かの経験)
0387名無しさん@お腹いっぱい。
2007/04/09(月) 11:12:59おまえら(ひとりか? ...だなw)好き勝手な前提暗黙で持ってきてこねくりまわしてんじゃねー。
そういう性癖直した方がいいぞ。人として終わっとる。
0388名無しさん@お腹いっぱい。
2007/04/09(月) 11:18:00特に /bin/sh なんかかけらの継承性もないぞ。あほうかおのれは。
Linux 持ち出したいんなら POSIX 当たれよ。興味ないがなw
0389名無しさん@お腹いっぱい。
2007/04/09(月) 11:26:43Solaris 10の /bin/shで、
$ a=1
$ a=2 echo hoge
hoge
$ echo $a
2 ← これバグだろ
$ a=1
$ a=2 /bin/echo hoge
hoge
$ echo $a
1 ← こっちは正常
外部コマンドのechoだと正常だが、内部コマンドのechoだと、
NAME=valueを前置した場合の動作がおかしい。
0390名無しさん@お腹いっぱい。
2007/04/09(月) 11:27:52自分で試せばいいじゃん。
0391名無しさん@お腹いっぱい。
2007/04/09(月) 11:30:07bashだと、>>389 が言ってる件は正常に動作する。
Solarisの/bin/shのみのバグと思われる。
0392名無しさん@お腹いっぱい。
2007/04/09(月) 12:06:50それがV7のbshからの仕様になっちゃっているの。
他にもたとえば、
while read VAL;do 〜 ;done < FILE
がサブシェルになってしまうとか。
いろいろあるんだから。
0393名無しさん@お腹いっぱい。
2007/04/09(月) 12:11:16whileがサブシェルになる件とはたとえが違うだろ。
0394名無しさん@お腹いっぱい。
2007/04/09(月) 13:38:200395名無しさん@お腹いっぱい。
2007/04/09(月) 15:26:52>>388
>しかも、そもそもの Unix の仕様とか考察するのに Linux 持ち出してなんの参考になるんだ?
UNIX ではなくて、shell の仕様ね。Linux を持ち出したのではなくて、"bash" を持ち出したんだ。
理由は、bourne shell よりも、bash の方がはるかに POSIX 準拠にしようと努力がなされているから。(つうか、bourne shellはまだメインテナンスしてた?という感じ。)
ksh の方がまだ、POSIX に近い(というか、歴史的には 最初のksh とかそれにつづくkshDD (D は数字いれて)がIEEE の shell and
utilities のベースになったというのが近い。ただし、文法はかなり既存のものとは違ったものになってけど。yacc で文法記述しようとして、結局既存のもの通りにはいかなかったとおもう。)
>>389
env なしだったのね。これは私が眼鏡かけずに読んだ完全な読み間違い。だけど、389の投稿のおかげでecho と /bin/echo の差にあるように組込みの関数の場合(export も組込み)になんか変になることが良くわかった。
元のbourne shell, ksh(とその亜流) で関数定義方法が違うからなんともいえないが、多分
name=value command arguments
の形式のcommand のところに、組込み関数とか、シェルでユーザ定義する関数を使う場合にも
外部コマンドと環境変数の使い方を共通にしたいという変更をしたところでちょっと疑問視される変更をしたと思う。
0396名無しさん@お腹いっぱい。
2007/04/09(月) 15:31:06長くて一つに入らなかったので、つづき。
posix つうかopengroup が仕様を公開しているが
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02
2. Shell Command Language
の2.14 Special Built-in Utilities の項目2のところをみると
多分これは "read" なんかに言及しているとおもうんだけど、
echo|export の場合に多少勘違いしているような気がする。
興味があるかたは読まれたい。
いずれにせよ、posix 準拠を目指している他の シェルと微妙に
かつ異なる挙動があるとあまり嬉しくないね。
0397名無しさん@お腹いっぱい。
2007/04/09(月) 15:58:10POSIXに準拠していないのはわかっててそのままにしてるんだよ。
0398名無しさん@お腹いっぱい。
2007/04/09(月) 16:21:510399名無しさん@お腹いっぱい。
2007/04/09(月) 16:49:27だらだら書くのはやめてくれ。要点だけでいい。
0400名無しさん@お腹いっぱい。
2007/04/09(月) 17:13:140401名無しさん@お腹いっぱい。
2007/04/09(月) 17:14:33Solaris10 は、DirectFB はサポート外ないのでしょうか?
0402名無しさん@お腹いっぱい。
2007/04/09(月) 17:31:37ナイス、ぶったぎり。
0403名無しさん@お腹いっぱい。
2007/04/09(月) 17:44:25>>90 さんが、あなたとほとんど同じ質問をして、解決しているようです。
>>90 からの流れを読んでみましょう。
0404名無しさん@お腹いっぱい。
2007/04/09(月) 17:45:56>>360 ww
0405名無しさん@お腹いっぱい。
2007/04/09(月) 18:40:090406名無しさん@お腹いっぱい。
2007/04/09(月) 20:12:15元祖shの方は今更手を加えて動作を変えると互換性が怪しくなるんで
>>389みたいなのは判ってるが大人の事情で絶賛放置中ってことだろ
0407名無しさん@お腹いっぱい。
2007/04/09(月) 20:38:460408名無しさん@お腹いっぱい。
2007/04/09(月) 20:44:19いや、FreeBSDとかLinuxのsh (bashじゃないよ)では、
>>389 の問題は発生しないんだが。
手を加えて動作を変えると互換性が怪しくなるという理由だと、
FreeBSDやLinuxのshも、>>389 の動作をあえて継承する必要があることになるが、
実際には問題は起きていないので、やはり、Solarisの方が怠慢ということになる。
0409名無しさん@お腹いっぱい。
2007/04/09(月) 20:48:16Linuxのshってなんだ?
$ /bin/sh --version
GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)
0410名無しさん@お腹いっぱい。
2007/04/09(月) 20:53:37ash
0411名無しさん@お腹いっぱい。
2007/04/09(月) 21:04:04うちの婆ちゃんが言ってた
一概は気違いよか悪いって
0412名無しさん@お腹いっぱい。
2007/04/09(月) 21:06:190413名無しさん@お腹いっぱい。
2007/04/09(月) 22:23:48↑バカの見本。
0414名無しさん@お腹いっぱい。
2007/04/09(月) 23:02:230415名無しさん@お腹いっぱい。
2007/04/09(月) 23:53:320416名無しさん@お腹いっぱい。
2007/04/09(月) 23:55:350417名無しさん@お腹いっぱい。
2007/04/10(火) 00:38:390418名無しさん@お腹いっぱい。
2007/04/10(火) 02:09:530419名無しさん@お腹いっぱい。
2007/04/10(火) 12:51:56文章の前後から考えるとLinuxのファイルシステムのext3のことなんだろうけど。
http://www.dbforums.com/showthread.php?t=1341582
去年の6月のネタだ。
0420名無しさん@お腹いっぱい。
2007/04/10(火) 19:58:290421名無しさん@お腹いっぱい。
2007/04/10(火) 21:15:33とあまで出てきて、わろた
0422名無しさん@お腹いっぱい。
2007/04/10(火) 21:52:36USO800ならあるかもぞーん。
0423名無しさん@お腹いっぱい。
2007/04/10(火) 23:31:030424名無しさん@お腹いっぱい。
2007/04/10(火) 23:42:050425名無しさん@お腹いっぱい。
2007/04/11(水) 00:07:53> ↑バカの見本。
板違いっぽいがLinuxの/bin/shはbashがshの振りをしてる筈だから
バグった動きもエミュレートすべきだという意見は極めて正論といえる。
是非パッチを書いてGNUに貢献してくれ>>408
0426名無しさん@お腹いっぱい。
2007/04/11(水) 00:30:150427名無しさん@お腹いっぱい。
2007/04/11(水) 07:00:11欲嫁。
「バグった動きもエミュレートすべきだ」というのは反語として言ってるるよ。
でも実際にはそんな必要は生じていないから、
Solarisのshがいい加減バグを直すべきだ、と主張していると思うが。
あと、Linuxで /bin/sh = bashな鳥が多いのは確かだが、
/bin/sh = ash である鳥もある。
で、その ashについて言ってると思うよ。
■ このスレッドは過去ログ倉庫に格納されています