シェルスクリプト総合 その37
■ このスレッドは過去ログ倉庫に格納されています
シェルスクリプトに関する総合スレッドです。 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 ・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。 ・「POSIX原理主義」「ユニケージ」「USP研究所」はPOSIXとUnixを曲解し 間違ったシェルスクリプトを広めている宗教です。洗脳されないようにしてください。 前スレ: シェルスクリプト総合 その36 https://mevius.5ch.net/test/read.cgi/tech/1614212414/ 関連スレ ・【Bash】Windows Subsystem for Linux【WSL】11 https://mao.5ch.net/test/read.cgi/linux/1627507889/ ・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/ >>123 ほら、言ったそばからこれだよ… 謙虚に、っていったろ? exprの終了コードは特殊なんだよ。 わからないことはわからないとまず認めること。 テキトーこいてごまかそうなんて一番ダメだ。 >>125 「特殊」=「exprコマンド[の]」 本当にお前は読めないやつだな 何が「謙虚に」だよ、お前こそ謙虚に読みやがれよw >>126 まちがったことにすらも気付いてないのかw もうつける薬もないなw >>127 お前こそお前が言った「ケチつけて」でばっかというのが気づかないんだなあ >>11 ,12をちゃんと謙虚に読めよw その流れのうちの話でしかないからな それも読まない/読めないくてだからなあ、言っても「全く」わからないんだろうけど >>124 見る価値はないぞ 俺共々アポーンでどうぞw >>128 だからちゃんと自分のレスを読み返してねw 間違ってるぞw testとexprの終了コードは同じじゃないぞw もう面倒だから、これ以上の指摘もしないけど。 つか、このスレこんな自称「プロ」みたいのが常駐してんの?w うへぇw >>130 ...すんげー読めなさぶりを発揮してくれちゃってもうwwwww 本当にお前はwww 誰も評価が同じとは言ってない。そこかよwww exprだろうがtestだろうがコマンド[の](独自とか独特とか何でもいいけどそんなん)でしかないと読めると思ったんだがなあ [の]の後に何が続くかも読めないのか...何が続くと思ったのだろう?いや続くとは思わなかったのか??不思議だなあ ( 日本語日本語とお前は言ってるが、日本語小説読めないぞそんなんじゃ。読まない読めないのか?) >>131 うん、少しわかったw君は日本語が書けないんだね?w 日本語ができないのかwまずそこから勉強しようねw >>132 お前にもわかるような教科書や参考書のような日本語は面倒で書くわけがないわな お前が望んでるのはそんなのだなw >>133 なるほどね。 だから、俺の書いてあることがよくわからなくて、 いちゃもんつけて絡んできたわけか。 最低だな。まさにネットチンピラだねw >>134 wwwwww 何で「だから〜」になるやねんwwwww さすがだなあ お前が読めない読まないくせに。俺だけじゃないらしいぞお前のそういう評価はw それを踏まえての>>133 なんだが、何故その理解になるんだか、七不思議 まあ、それもお前は自分の言ってることが正しいとお前だけ言い張るからだろうけど >>134 華麗にスルーされたけどさ、 前スレ>>989 なんて言ってるけど、確かにWindows APIはBooleanで返すのが多い だがそれはWindows APIの文化でしかない、シェルスクリプトの本家wであるUnixで何か書いたことがあるなら文化が違うとわかりそうなもんだが、なぜかWindows APIのが全てと言ってそうな前スレ>>989 WSLからのにわかか? って、合ってる?w あと、宮城県に住んでいたりする?w 日付も変わるし、>>11 ,12以降何も意味あることないからw(互いになww)、もう締めようかと で、>>12 での俺の疑問と、後はなんかソレっぽい(まあ、無いと思うけど)確認したいんだけどw とうとう変なゲスの勘繰りまで始めた…w いや、読めんよ、これはw本当にw もしかして、頭がおかしいのだろうかね… >>137 「ゲスの勘ぐり」wwww 散々してる、お前が言うなーーーーーーーwwwww すげえなあ ちゃんと理由書いてるからな、最初のは 後のは特定w有名人に似すすぎてな、その自己完結して他の人の指摘を聞き入れない頑固さ自己防衛意識wだけなのは え?俺がゲスの勘繰り? 一体なんのことだよw 完全に狂人だなw さすがにID:h64P2lE5みたいなのと会話するのはちょっと神ならぬ我が身では無理、 だな。 犬に噛まれたと思って諦めるよ >>139 すげえよww(マジ似すぎwwww) 俺に対して「こうじゃないか」とお前は散々言っているんだがな、根拠全くなく(=外れてるから) いや、お前のは「こうだ」と決めつけてるけどな。俺はお伺いしてるんだから謙虚wwだろう?w >>140 だから、その独善っぷりがなあ、似すぎなんだよwww YESかNOで済む話なのに、何で答えるのに拘るのか 別にNOでもそれ以上突っ込むことは無いのに まあ、なんかわけわからんプライドからだったりするんだろうな NOすら貰えなくて残念だったわ じゃあ、また会おうw >>135 > 俺だけじゃないらしいぞお前のそういう評価はw なにいうてんねん、イキりをイジりはじめたんはワイのが先やろ?w 前スレ>>984 もワイやし、前スレ>>897 からの付き合いや! て、あれ? もう終わったん? >>144 >なにいうてんねん、イキりをイジりはじめたんはワイのが先やろ?w w 先かもしれないなあ、いや先だろな 別に俺が言い始めたとは言ってないから勘弁してくれw >前スレ>>984 もワイやし あ...>>989 の間違いだった(趣旨がトンチンカンの>>982 のに「まあ、これなんだよね(笑)」と同意してる) 誠にすまんことです 繰り返したぶん、 ID:FcrICImt にもすまん >>145 なんか居たなw 赤の他人が悪絡みwのネタになるとでも思ってだろうとスルー >>147 ,144 >あ...>>989 の間違いだった(趣旨がトンチンカンの>>982 のに「まあ、これなんだよね(笑)」と同意してる) >誠にすまんことです >繰り返したぶん、 ID:FcrICImt にもすまん あ...>>12 ,136 で間違ってるのかと思った。間違ってないな、勘違いだった、どうかここは無かったことに >前スレ>>984 もワイやし あくまでも「なにいうてんねん、イキりをイジりはじめたんはワイのが先やろ?w」の拘りかっw勘弁してくれ、そのノリは一瞥にはわからんw レスバ乙。 最後に俺がまとめてやんよ。 終了ステータス0を真と見なすのはifコマンドの仕様です。 これでスッキリするな。 >>150 while until && || も まだやってたのか >シェルスクリプトだけじゃなくてC言語も成功は0を返さないとだめだって言ってんだろ 仕様書嫁 >>10 判ってる人間は「負論理」で済むはずなんだよな 結局「仕様書嫁」としか言い様が無い 1が真でも 0が真でも どっちでも良いんだよ >>12 Windows API は Boolean を返す関数が 0/1 以外に負の数を返したり普通にあるからな どっちもどっち ここまでコミュ力低いやつらはリアルで見たことないわ 運がいいのかこいつらがよほど特殊なのか >>150 それやと、また真偽バカを召喚しちゃうやろ!w if節の終了ステータスが0のときにthen節を、そうでないときにelse節を実行する、と実際の挙動のみをいえばよい。 >>154 正論理負論理は、2値の場合に使う考えかた。 整数についてはふつう言わない。 知ってる理屈をほかにムリヤリ適用すな! >>156 そういうのは初期の残念APIだから。。。 許してやろうや。。。 >>159 FORTRANの時代から算術IFというのがあった 分岐節が3つあって負、0、正の場合分け >>160 残念じゃなくてadhocなtype liftingなだけだ Cのポインタ返す関数がNULL返すのと同じ考え方 >>161 知らんがな。関係あらへん。w まあ、分岐の話をするんなら、CPUからやな。 ゼロフラグとキャリーフラグで3分岐できるもんやし。 >>162 理解力ないんか。。。 中盤以降は、そういうAPIはないやろ。 タイプセーフも強まっていったから、昔の挙げ足はええやろ、というとるんや。 >>165 すでに終わってるのに無理に絡むおまえのがキモいぞ シェルスクリプト使いにとってキモいは褒め言葉。 つか何でposixに終了ステータス0はtrue、1はfalseって書いてあんのに揉めてるの? >>167 どこに書いてあるかを言わないからだろ お前が揉める原因なんだよ いい加減嘘ついてあらすのはやめろ 127 や 126、1 から 125 にとは書いてるから >>167 は明らかに嘘だな >>168 終了ステータスは、 trueは0、falseは1は正しいが 0はtrue、1はfalseは正しくない というのがわからない残念な人なんだろう このようにどこに書いてあるのかを言えという 当たり前の質問にも答えられないわけですよ(笑) >>171 えと、本気で理解できないんだが詳しく教えてもらえないでしょうか。 >>173 その本のどこに書いてあるかを聞いてるんだが 理解してないの? いや、>>171 はたしかにおかしいな。w 反対や。 0はtrue、1はfalse(と評価されること)は正しいが、 trueは0、falseは1(の値をあらわすこと)は正しくない。 >>175 どこにってのは、どの項目かよく見ろと暗に示してるのかな? sh https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/sh.html EXIT STATUS The following exit values shall be returned: 0 The script to be executed consisted solely of zero or more blank lines or comments, or both. 1-125 A non-interactive shell detected an error other than command_file not found or executable, including but not limited to syntax, redirection, or variable assignment errors. 126 A specified command_file could not be executed due to an [ENOEXEC] error (see Command Search and Execution, item 2). 127 A specified command_file could not be found by a non-interactive shell. test https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/test.html EXIT STATUS The following exit values shall be returned: 0 expression evaluated to true. 1 expression evaluated to false or expression was missing. >1 An error occurred. >>177 理解しました。 >>178 testコマンドの部分は 引数で渡された式が真ならtestコマンドは0を返す(以下略 と書いてあるだけじゃん 真というのはtestコマンドのテスト式内の話 >>171 >trueは0、falseは1は正しい >0はtrue、1はfalseは正しくない ここだけ読むとイミフ >>171 >>177 どちらも可笑しい 仕様書に描いてあることが正しいのであって おまえの意見はどうでもいい >>177 ture/false コマンドに(Exit Status) 0 および1を返すと書いてある testコマンドに評価としてtrueとは書いてあるが、それは評価としてでその値が1なのか0なのかというのではないという理解だけど POSIXに書いてあるという話なら ぱっと流れを見てきただけだが、 []/test コマンドの評価が真で0を返すってところからはじまって、 他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの? これをもって終了ステータス0が真を意味するってわけじゃないよねぇ 日本語と英語で、否定文に対する同意にyes/noが反対になるのと似てると思う 前者は否定文それ自体、後者は事象全体について、それぞれ評価してるよね >>177 trueコマンドのExit Statusは0、falseコマンドのExit Statusは1 評価した結果trueならExit Statusは0、falseならExit Statusは1 てことででの、trueは0、falseは1 (のExit Status) になるでしょ?? testコマンド(など)で書いてるtrueは一般的な文上でのtrue(例えばtest条件に一致する=真)と読んでるけどなあ って、よく読んだら同じこと言ってるのか。シェル内部(?)の部分の話かそれ>>177 は Exit Status が 0だったらtrue、1だったらfalse と評価されることは正しいが (ここはわかる) trueは0、falseは1(の値をあらわすこと)は正しくない (言いたいことはなんとなくわかるしだったら否定はしないが、うーむ) >>171 は、 >終了ステータスは、 から始まってるとおり(上にも書いたけど)、 trueは0、falseは1は正しいが (そういうExit Statusになる) だからといって、 シェルスクリプト上で 0はtrue、1はfalse(と見なすのは)正しくない てこと。下は「trueは0、falseは1(の値をあらわすこと)は正しくない」と同じ意味だわな >>183 >[]/test コマンドの評価が真で0を返すってところからはじまって、 >他のコマンドの返り値もこれにならって処理成功で0を返すようになったというだけじゃないの? Unixで動くプログラムはExit Statusが問題なければ 0、問題あればそれ以外というとこからはじまってかな。testコマンドもそれに合わせてのような Unixを作る上でのOSのUnixとしてのExit Statusとはどういうものかというのは最も先に考えるだろうから、そこからはじまってかな いまでも 0〜255 なんですか 256 以上とか 0 未満とか ありえないんですか? 8ビットいっぱいでの値(=unsigned char)となってるね、POSIXでは int main( ... ) だから、失敗なんぞで -1 をreturn できる(エラーにはならない)が、255になったりするねえ ん?まさか、trueコマンドとfalseコマンドを 真偽値のtrue/falseのことだって勘違いしてる? いやそんなアホはいないよねw 終了ステータスは数値であって true/falseじゃないよ はっきりした ただの独りよがり、マウントだけは取りたがり まあわかったようなのでいいけど >>183 終了ステータスは昔から0が正常終了、それ以外が異常終了という意味 シェルスクリプトのifは正常終了の場合にthenの中身を実行する それだけの話なのに真とか偽とか、trueとかfalseとか 言ってるやつがいるだけ trueコマンドは正常終了を返す fasleコマンドは異常終了を返す ifは正常終了か異常終了かで処理を分岐させるもので 真か偽かで処理を分岐させるものではない なにか必死感 >>175 なんて平気で偉そうに自分で調べる探すことはできないくせに まあこれ以上イジルのは止めようw 誰とは言わんがw某君は自分で調べることも探すこともできないは明らかだが、 そこからくる無知がコンプレックスからなんだろうなその常時上から目線すぐに誤魔化す癖なのは と思われるw >>190 例えばカーニハン、ロブパイク共著のTHE UNIX PROGRAMMING ENVIRONMENT のp140のif構文の説明には if command then commands if condition true else command if condition false do と書かれている。P145のwhile untilの説明にもtrueとfalseが使われている。 あなたの言いたい事は分かる、というかみんなわかってる。ただ、昔からの習慣をぶった切って何が得なのか分からない。 「条件が真」というのは真偽値とは別の話だよ 条件とセットになってないといけない 何が真かどうかは条件文つまりコマンドによって変わる 値だけをみて真かどうかなんてわからない 例えばexprという条件文は、1(0以外)が真で、0が偽 testという条件文は、文字列の長さがあれば真で、空文字なら偽 だからtestの場合は0も1も真だし、testの演算子を使えば、それに応じて結果も変わる どの値が真か偽かなんてわからない 少なくともexprでは0は偽 >>195-196 つまりスクリプトの文脈や使うコマンドに依存するって事ですよね。それは誰でも知っている。 全てに共通では無いからと言ってif文の話の時ですらtrue falseと言う言い方、表現を認めないと言うのはそれこそ文脈無視。何でそこまでtrue falseを否定するの? >>190 で完全におわってるんだけど何が不満なんだよw >>197 お前がレスしてくるから、返してるだけやで 何が不満なんだよ? 俺も聞きたいわw >ifは正常終了か異常終了かで処理を分岐させるもので >真か偽かで処理を分岐させるものではない そこが普通のプログラミング言語と違うから 混乱することあるよねって話だったんじゃ? >>200 混乱するよな、だったら、そうやな、で終わってた。 ところが、混乱した頭でムリヤリ合理化して、シェルスクリプトとC言語に真偽を融合した大統一理論wを主張されたら、そりゃあ黙ってはおれん。 いや、スルーしてもええんやけど、イジったらおもろいやん? >>184 コマンドの話やったらちゃんと「trueコマンド」って書かんと。 真偽値の話もあるところに単独で「true」とあったら、かならずしもコマンドのことやとは思わんやろ。。。 >>188 誤解のない文章を書けるようになれよ? クソ文を読めない人間の悪口なんか言わんと。 >>202 元々に合わせてのなんだけどな 基本的に元のレスに合わせる感じ、なんか断定的に書いてたりしたら、ひとりごちでわかったように書いてたらw (true/falseってコマンドが真っ先にじゃね?wともあってなあ。シェルスクリプトでtrue/false書くのはコマンドのだし) >真っ先にじゃね?wともあってなあ 真っ先にじゃね?wともあってなあ、「わかるだろ」と親切心w皆無(何故かは書いた通りw)なこともあり てことね >>206 ごめんなさい、fi です。 whileの説明も書き写していたけど長いと思って削除したんですが、その時のミスです。 >>200 Ifに関しては普通のプログラムも真かそれ以外かだと思うけど。 >>208 失礼、プログラムじゃなくてプログラミング言語 >>208 >真かそれ以外か そこに疑問を持った方がいいぞ。真か偽かと書けない時点で >>208 何が真/偽と評価されるかの話に、抽象化された一般論で割り込むな。 >>208 普通のプログラム言語は式が真かそれ以外と評価される シェルスクリプトはコマンドの実行結果が真かそれ以外と評価される 例えば C言語で if (foo(0)) { ... } とあったとき、 0は真だと思うかね?偽だと思うかね? それと同じことだよ Mb >プログラミング言語どころかコンピュータのことすら 理解していない奴が荒らしにきているわけだ。 初心者はもちろん歓迎するのだが、 邪魔する奴は全力でツブす という、怖ろしい連中がいることを肝に銘じてほしい。」 ! [ -n 'これ?' ] [ ! -n 'それともこれ?' ] 好きにだな シェルがやる(汎用)のかコマンドがやる(独自)のかの違い 得られるのは同じ >>220 論理反転できるコマンドなんかあるんか? gitコマンドとかで shでmain関数を定義して ループ内で main & すればサブプロセスで動いてくれてechoしたときの出力も全部表示されるやん? powershellで同じことしたいのにできひんねんけど誰か教えてくれ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる