1 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:17:50.64 ID:L+B8OP2P.net] シェルスクリプトに関する総合スレッドです。 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 ・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。 シェルスクリプト総合 その30 https://mevius.5ch.net/test/read.cgi/tech/1561989867/
2 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:19:50.86 ID:L+B8OP2P.net] お約束 ・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです) つまりシバンは #!/bin/sh です。 特定のシェル(bash, zsh, (m|pd)ksh, (d)ash, yash, posh, fish, (t)csh など)の専用機能に依存する場合は明示しましょう。 macOS (10.14以前), GNU/Linux ユーザー(Debian, Ubuntu 系以外) は /bin/sh の実体が bash なので*特に*注意 自覚なき bashism---シバンが #!/bin/sh なのに bash に依存する構文を使っていませんか? ただし Debian, Ubuntu などでは /bin/sh の実体は POSIX sh 互換の dash ですのであまり気にしないでも大丈夫です。 FreeBSD ユーザーは /bin/sh の実体が ash なので注意。 Solaris, OpenBSD ユーザーは /bin/sh の実体が ksh なので注意。 macOS 10.15以降のユーザーは/bin/sh の実体が zsh なので注意。 android ユーザーは /bin/sh の実体が mksh なので注意。 csh/tcshでのシェルスクリプトは*まったく推奨しません*。 (参考URL: www.speech-lab.org/~hiroki/csh-whynot.euc ) ・POSIX に準拠しましょう 有用なリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています。 最新の仕様はこちらへ: pubs.opengroup.org/onlinepubs/9699919799/ (左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます) ・Version 7 UNIX の sh(1) に一番近いのは OpenSolaris 由来の Heirloom sh、次点で Debian などに搭載されている Dash shell Heirloom sh: heirloom.sourceforge.net/sh.html Dash shell: gondor.apana.org.au/~herbert/dash/ ・UNIX にはシェルスクリプトに便利な小さなコマンドがいろいろあります Man ページや各種リンク(pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html など)を見ましょう。 apropos(1) ないしは man(1) の-kオプションでそれらしい単語による簡単な検索もできます。 ・ワイルドカードは正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆうな
3 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:21:14.80 ID:L+B8OP2P.net] 初心者へのアドバイス ・適した道具を判断するのも頭の重要な使い方。 シェルスクリプトよりも Per lまたは Python の方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたら man(1) を引きましょう。 ・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。 回答者への注意事項 ・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに「そういうのはPerl, Python使え」と回答するのはやめましょう。 安易に Perl や Python に逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。 ・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。 ・例に対して、その例だけ動くコードを書くのはやめましょう。例は例です。本当に実現したいことを文章から読み取りましょう。
4 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:21:34.36 ID:L+B8OP2P.net] 参考リンク Bourne shellの種類とか歴史とかシェルの挙動とかいろいろ詳しい https://www.in-ulm.de/~mascheck/
5 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:57:47.48 ID:L+B8OP2P.net] 関連スレ 【Bash】Windows Subsystem for Linux【WSL】6 https://mao.5ch.net/test/read.cgi/linux/1560665525/ 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/ 【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net https://mevius.5ch.net/test/read.cgi/unix/1443103705/
6 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 00:00:50.90 ID:GFStkW/c.net] 【POSIX】 sh系互換 シェルスクリプトスレ https://mevius.5ch.net/test/read.cgi/tech/1535195112/
7 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 02:27:44.34 ID:d6NgfAAh.net] テンプレの「Version 7 UNIX の sh(1) に一番近い」ってそんな根拠ある? むしろ「POSIX shを最もよく実装してる」ほうが適切な表現じゃね?
8 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 02:56:20.42 ID:GFStkW/c.net] >>7 Heirloom shのことだとして(意図的だろうけど)POSIX shではなく レガシーなBourne shellに近いから「Version 7 UNIX の sh(1) に一番近い」なんだよ つまり、Version 7 UNIX の sh(1) は Bourne shell。 具体的には ArithmeticExpression $((1+2)) や Parameter substitution のうち ${p#foo} や ${p%bar} みたいな POSIXの仕様を実装してない。
9 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 03:02:13.27 ID:GFStkW/c.net] もちろん次点のdashはPOSIX shを実装してる。 「最も」かどうかはしらんけど
10 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 06:42:57.65 ID:d6NgfAAh.net] >>8 いや根拠ある?(公式文書内の発表とかで。無い気がする。) しつこくてごめんね。小さいことが気になる性格なの。 Most scripts that run in the Heirloom Bourne Shell will run with any Unix shell that is still in use in the twenty-first century. heirloom.sourceforge.net/sh.html
11 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:06:35.23 ID:++HFlOfG.net] >>10 根拠を自分で考えるってことができない性格なんだねw
12 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:08:41.84 ID:++HFlOfG.net] Version 7 UNIX の sh(1)やHeirloom Bourne Shellが 「POSIX shを最もよく実装してる」という根拠はないよね (公式文書内の発表とかでw)
13 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:11:01.36 ID:++HFlOfG.net] heirloom.sourceforge.net/sh.html > Although the Bourne shell is not POSIX-conforming 意訳 The Heirloom Bourne Shellは POSIXと互換性がありません
14 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:14:38.09 ID:++HFlOfG.net] (あ、これ、いつもの人かな?推論能力が圧倒的に低くて、書いてある内容から 「ゆえにThe Heirloom Bourne Shellは POSIXと互換性がない」を導き出せない)
15 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:16:58.74 ID:lm+uP+yI.net] 前スレ埋めてこいよw
16 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:42:08.39 ID:d6NgfAAh.net] >>14 ワロタw お前のそれは「推論」じゃなくて「論理の飛躍」だよ
17 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:44:11.25 ID:++HFlOfG.net] あー、やっぱり読み取れないんだ・・・
18 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:47:59.57 ID:++HFlOfG.net] かわいそうだから、せめて日本語訳にしてあげるね。 家宝ボーンシェル 家宝のBourneシェルは、伝統的なUnixシェルのポータブル変種です。 OpenSolarisコードから派生している ため、SVR4 / SVID3レベルのシェルを実装しています。 Bourneシェルは ・スクリプトの移植性テスト。 POSIX.2標準は既存のBourneシェルの動作と互換性のないシェルの要件を導入したため、 BourneシェルはPOSIX準拠ではありませんが、すべてのUnixシェルスクリプト言語の父のままです。 Heirloom Bourne Shellで実行されるほとんどのスクリプト は、21世紀にまだ使用されているUnixシェルで実行されます。 POSIX準拠でBourneシェルで使用可能なシェルスクリプトを記述するのは比較的簡単です。 ・レガシースクリプトの処理。 いくつかの歴史的なスクリプトは、Bourneシェル独自の言語機能を使用していました。 それらをポータブルシェル言語に変換するのは難しい場合があるため、 Bourneシェルを使用して実行するのが便利な代替手段です。 ・一般的なスクリプト処理。 Bourneシェルは、新しいUnixシェルほど多くの機能を提供しませんが、それでも非常に使いやすいスクリプト言語です。 また、Bourneシェルの言語は20年近く安定しており、この実装でも引き続き安定しています。 これにより、プログラマーが慣れ親しんだBourneシェルは驚くことのないスクリプト言語になります。 これは、新しいシェルの多くとは言えません。 ・インタラクティブな使用。 Bourneシェルは、jshとして呼び出され 、端末で実行される場合、ジョブ制御を提供します。 もちろん、コマンド履歴、コマンドライン補完などの派手な機能はありません。しかし、これらの機能を使用すると、 ユーザーの注意をそらす傾向があります。慣れの段階の後、Bourneシェルを使用すると、 より均一で集中的な作業スタイルになります。試してみる。真剣に。
19 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:48:21.88 ID:++HFlOfG.net] これで(他の人は)理解できたやろ?w
20 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 09:55:06.43 ID:FACDvm3m.net] ムキーってなってるの?そんなに連投して
21 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 10:00:36.39 ID:++HFlOfG.net] あそんでるだけやで、昨日からの続きで
22 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 10:05:58.63 ID:lm+uP+yI.net] お前かわいいな
23 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 10:11:58.37 ID:FACDvm3m.net] でも他人が同じようなことしたらムキーっとなってると言うよねえ
24 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 11:19:28.31 ID:OeRZAsFl.net] >>7 ,10 derived from OpenSolaris code and thus implements the SVR4/SVID3 level だから、Version 7 UNIX というのはいきなりっぽい Version 7 UNIX の sh の重要性がまったくわからんが、SVR4 よりは重要、Version 7 UNIX の正当な流れを汲んだうちでの(ソースレベルで?)一番近いから、Version 7 UNIX としたんじゃないかな、そもそもソコを書いた人は SVID3 は POSIX以前の時期での標準を作ろうとした規格のようなので、「POSIX shを最もよく実装してる」は無いんじゃないかな。SVID3とPOSIXの差異近似がわからんけど あんま興味ない(使うことはないから)けどチラっと調べた範囲では。調べてもあんま興味わかないなw
25 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 12:03:55.85 ID:d6NgfAAh.net] いや〜他人を怒らせないようにしてるんだけど その当の他人がチガイだとどうしようもないなw
26 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 12:07:26.43 ID:d6NgfAAh.net] 「ムキー!ボクの意見と違うことを言うやつなんて嫌いだー!」
27 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 12:26:49.70 ID:OeRZAsFl.net] 落ち着こうなw
28 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 14:43:52.88 ID:++HFlOfG.net] >>24 > Version 7 UNIX の sh の重要性がまったくわからんが それな。 「Version 7 UNIX の sh(1) に一番近いのは〜」を最初に書いた当時は まだレガシーなシェルスクリプトが存在したのかもね このスレ元々UNIX板にあったわけだし Heirloom shも(世間がPOSIX準拠になりつつある中) レガシーなスクリプトを処理するために作った書かれてるし 日付を見ると2010年の話? 一般に商用UNIXと呼ばれるもの(macOSは含めない)が 閉鎖的で情報が共有されなくて、質問されても誰も確認できないでしょ? Linuxばかり使われるようになった。だからその文章も時代に合わない。 次からは修正しておくよ。
29 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 15:06:11.53 ID:++HFlOfG.net] テンプレで質問 > ・ワイルドカードは正規表現ではありません。 みんなワイルドカードって呼ぶ? MS-DOSではワイルドカードって言ってたけど なんとなく最近聞かない気がする。かと言ってグロブと呼ぶか?というとそれも詳しい人ぐらいしか > ・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。 -xオプションと似たやつに-vってのがあるんだね。 みんな使ってる? 俺は使ってみるも、たくさん実行がでてきて面倒くさくて結局見なかったことにしちゃうw
30 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:20:03.32 ID:++HFlOfG.net] /bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった。 今作ってやってみたけど、やっぱり、bashだとecho -n helloは (POSIXにはない)-nを認識するね。 # which sh /bin/sh # /bin/sh sh-3.2# ls -l /bin/sh lrwxrwxrwx 1 root root 19 Aug 11 09:14 /bin/sh -> /usr/local/bin/bash sh-3.2# sh --version GNU bash, version 3.2.57(1)-release (x86_64-unknown-linux-gnu) Copyright (C) 2007 Free Software Foundation, Inc. sh-3.2# sh sh-3.2# echo -n hello hellosh-3.2# exit exit sh-3.2# bash --posix bash-3.2# echo -n hello hellobash-3.2# 前スレ>>996 はMacかな? (x86_64-apple-darwin18)って書いてるからそうだろうね。 Macの環境はビルドがおかしいのか時折変な動きをする。
31 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:24:50.03 ID:k+c7cOcw.net] ええぇ、自分でMacもって言ってなかったかな? 元レスの人のがが何かはわからないが、その可能性はなくもない、だったらの話だが エアプで見栄であれもこれもと羅列しただけ?w
32 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:24:58.94 ID:++HFlOfG.net] へー、たしかに、macOS Mojaveのデフォルト(homebrewではない)のbash 3.2.57だと echo -n hello が -n hello になるねw これはひどいwww なんでだろ。ちょっと調べてみるか。 その前に一言。だからPOSIX準拠で作れと言っただろー!
33 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:26:01.24 ID:k+c7cOcw.net] それはお前の自説。うっかりだとしたらしょうがないで済む話
34 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:26:26.17 ID:k+c7cOcw.net] てか、自分で確認できるくせにいろいろ妄想吐いていたのどうすんの?
35 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:27:23.91 ID:++HFlOfG.net] >>31 デフォルトはHomebrewのbashに切り替えてるのでね。 まさかbashで同じバージョンなのに、Linuxで-nを改行なしオプションと認識して macOSだと-nを解釈しないとは思わなかった。 まだぐぐってないけど、これ話題になってるんじゃね?
36 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:27:43.86 ID:++HFlOfG.net] >>33 そういうお前の自説を述べられてもw
37 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:28:26.21 ID:dSI5JGW8.net] /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
38 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:28:44.04 ID:k+c7cOcw.net] ああ、 >/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった って。ああ、ツッコミどころ満載。わくわくしてきだぞw そんなグダグダのヤツの傲慢な偉そうなご高説、誰が聞くかっw
39 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:31:38.54 ID:k+c7cOcw.net] >>31 デフォルトと/bin/shは違うんですけど。/bin/shも書き換えてんのか。OSのアップデートで書き換えられるのに。まあ、ご自由にだから、いちおう信じてあげようw でも、オマ環を理由にするのは情けないw 結局Appleが悪いにして自分のアホな妄想を否定するのはないんだな。さすがだよ
40 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:34:20.63 ID:k+c7cOcw.net] >>39 × >>31 ○ >>35 とりあえずあれだな。馬鹿な妄想で馬鹿にした自分が大馬鹿でしたと言いなさいw
41 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:36:37.47 ID:++HFlOfG.net] (macから書き込んでるからID変わってるかも) まずmacの/bin/shはシンボリックリンクではなく、 またファイルサイズが違っているので /bin/bash と完全に同じものでは無いのがわかる (おそらくビルドオプションの違いだろう) $ ls -al /bin/sh /bin/bash -r-xr-xr-x 1 root wheel 618416 5 4 16:04 /bin/bash -r-xr-xr-x 1 root wheel 618480 5 4 16:05 /bin/sh にもかからわず、同じバージョン番号を名乗っている (ビルドオプションが違うだけだから当然ともいえるが) $ /bin/sh --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc. $ /bin/bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc. そして想像つく通り、echo -n の挙動が違う $ /bin/sh -c 'echo -n hello' -n hello $ /bin/bash -c 'echo -n hello' hello%
42 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:37:50.08 ID:k+c7cOcw.net] だろ?そう言ってたんだけど。なに追試してんの?確認できてどうすんの? Appleが悪いでうやむやに?
43 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:38:56.40 ID:++HFlOfG.net] >>39 デフォルトっていうのは、OSのデフォルトシェルの話じゃなくて デフォルトで使ってるシェルって意味だよ。 bash だけで起動するシェル。ログインシェル。
44 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:40:47.34 ID:k+c7cOcw.net] ユーザ作った時のシェルもデフォルトシェルです。てか、そこはいいよ。信じてあげるって言っているんだから そんなのじゃなくてな、もっと前にお前がレスしたのを始末つけろよ。なんで逃げる?w
45 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:45:07.11 ID:++HFlOfG.net] >>42 お前の理屈は、 1. 前スレ>>975 は、Macを使ってるに違いない! 2. だけど実行したら動かないから、実行してないに違いない! 3. だから、うっかり #/bin/sh にしてしまったに違いない! 4. コピペもしてない! という根拠ない想像に基づくものだろ? 俺の理屈は「普段から Macでecho -n を使ってる人なら Macでecho -nが動かないのを知らないはずがない」から 普段、echo -n が動く環境を使ってる。というお前とは正反対の前提なんだよ。 だからecho -nの部分に書き間違いはなく [[ ]] がbash依存であることを知らなかったという結論
46 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:45:52.21 ID:k+c7cOcw.net] いや、その俺の攻撃はいいから、お前のやらかしたのを始末つけなさい
47 名前:デフォルトの名無しさん [2019/08/11(日) 18:47:21.37 ID:2JPwQqrg.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
48 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:48:15.91 ID:++HFlOfG.net] まあおかげでPOSIX準拠にするべき理由が一つ増えたじゃないかw 同じbashを使っていても、挙動が違う場合がある POSIX準拠で書きましょう
49 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:48:32.49 ID:++HFlOfG.net] >>46 なにもやらかしてないけど?
50 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:48:53.43 ID:++HFlOfG.net] >>47 bash依存するとそうなるだけw
51 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:49:00.05 ID:k+c7cOcw.net] >>ID:++HFlOfG なんで逃げる、やらかしたのは明らかだろう。カスなのか? まあ、想像できるよ、常時偉そうにしたいんだもんな。普通のレス、単純なミスに対してもたかーいところからのいきなりなダメだしとか普通だもんな。そんなお前が自分の過ちを認めたらプライドがズタズタにでもなるんだろう ...カスだなw
52 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:49:53.93 ID:++HFlOfG.net] 宣言 今度から、echo -n を見かけたら、それはPOSIX準拠してないので printfを使いましょうと書き込むことにする。
53 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:50:32.73 ID:++HFlOfG.net] >>51 お前、文句言ってるだけじゃんw やらかしてる部分はどこかを書けば、 やらかしてないという説明をしてあげるよ?
54 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:50:49.35 ID:k+c7cOcw.net] >>49 異常だな。自分に強く言われたらすぐ反発するくせに。自分で何をどう言っているのかわかってないのか てかそういうフリなんだろうな。>>51 のままだな
55 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:52:32.37 ID:k+c7cOcw.net] >>53 自分のレスを見直しなさい 自分の過ちがわからないのによく高慢に他人の過ちをあげつらえられるなあ まあ、もうわかった。この繰り返ししかないだろうから、カスだと確定します
56 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:54:05.02 ID:++HFlOfG.net] hints.macworld.com/article.php?story=20071106192548833 > This is not a bug. As OS X 10.5 is now certified to follow the Single Unix Specification, its /bin/sh and echo builtin now follow the specification なるほど。OSX 10.5から仕様変更されたっぽい。 これAppleがオレオレパッチ当ててるのでは? bash標準ではなさそうな気がする。 流石にAppleのオレオレパッチまではしらんてw
57 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:54:43.01 ID:++HFlOfG.net] な?さっきから俺はシェルスクリプトの話題をしてる。 ID:k+c7cOcw は、俺の話題しかしてない(笑)
58 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:55:27.94 ID:k+c7cOcw.net] 逃げるばっか。自分でMacも使ってるそのためにもPOSIXとかのたまってたのに
59 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:56:17.71 ID:++HFlOfG.net] 10.4まではmacOSのbashは-nを改行なしと認識していたそうだ > In fact, I tried echo -n from bash and sh on my 10.4 system and my Linux system and in all cases, > the -n was recognised as a switch. On both of those machines, /bin/sh and /bin/bash were identical (in fact, on the Linux box, /bin/sh was a symlink).
60 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:56:22.80 ID:k+c7cOcw.net] >>57 俺はとうに終わってるもん。お前もその俺のレスにレスしてんですけど?さすがだな
61 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:56:59.72 ID:k+c7cOcw.net] (ごまかしたくてしょうがないのがアリアリ)
62 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:58:37.20 ID:++HFlOfG.net] >>58 古いbashはLinuxで検証してるからね。 macでHomebrew使わないってありえんでしょ? macではbashも古い3.2.57じゃなくて5.0.7を使ってるよ。
63 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 18:59:22.71 ID:++HFlOfG.net] >>60 > お前もその俺のレスにレスしてんですけど?さすがだな 誰にレスしてるかではなくてレスの内容な。 お前は俺の話しかしてないけど、 俺は皆に役立つようにシェルの話をしてる。
64 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:03:26.79 ID:k+c7cOcw.net] >>57 と言っておいて我慢できなくて>>62 なのか?>>58 もお前だけの話題だけど?そのレスもオマ環の説明って、お前だけの話題だろうw オマ環でそういうことをしていても、macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。たいした使ってない=Macももただ並べただけだなという「俺の印象」w てか、そのオマ環を理由にするのは辞めなさい、いつもの高慢なお前には情けないw
65 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:04:18.13 ID:k+c7cOcw.net] >>63 意味わからんwさすがだな。POSIX原理主義者はやっぱり変なヤツと思うことにするぞw
66 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:05:17.46 ID:k+c7cOcw.net] ああ、やらかしたのをうやむやにするためにか...なるほど
67 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:06:30.10 ID:++HFlOfG.net] 確認取れた。やっぱり-nを改行なしと認識しないのは、bashの動きではなく Appleによるパッチみたいだ hints.macworld.com/article.php?story=20071106192548833 の下の方に書いてあるけど COMMAND_MODE=legacy /bin/sh -c 'echo -n hello' と書いたら-nを改行なしオプションと認識した(legacy 笑) この COMMAND_MODE は bashの機能ではなくAppleが用意したもの https://developer.apple.com/library/archive/releasenotes/Darwin/RN-Unix03Conformance/ macOS特有の動きだから、それを「bashでは」いうのはおかしいね。
68 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:09:29.22 ID:++HFlOfG.net] >>64 お前が俺にグダグダ言ってる間に答えを見つけたよ。 オマ環じゃなくて、macOS環境 お前は、bashは-nを認識しない(そのまま-nと出力される)と言っていたが、 それが間違いだとわかったよ。 bashは-nを改行なしオプションとして認識するのは正しい。(俺が今までLinuxで検証していたとおり) ただしAppleがビルドした改変版bashでは、 Single Unix Specificationに準拠するために POSIXでは規定されてない-nをそのまま出力されるようになってる。 まあこういう違いがあるから、やっぱりPOSIX準拠は大切だね。
69 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:10:38.51 ID:k+c7cOcw.net] >>67 俺のレスをよく読もうな。書いてからお前がイチャモンwつけたんだからな Macを持ってないとかならまだ許すが、自分で自らそのためにもPOSIXというひとつに挙げておいて、確認もせず、オマ環を自分で作ってそれも忘れ、 いろいろ忘れ、トンチキな妄想を吐いていたにもかかわらず、なかったことに&なにか知らんがwごまかしとしか思えないまったく真摯な態度が皆無なヤツです、いつもの高慢ちきは と(改めてw)証明wできたので、満足しとくわw
70 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:12:20.49 ID:k+c7cOcw.net] >>68 何を言いたいのかわからんが、現象は変わらない。そしてお前の間違いは変わらない な?こういうやつだな、やっぱり
71 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:14:12.80 ID:++HFlOfG.net] >>64 > macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。 お前、macOSしかbash動く環境知らんのか? bashはGNUプロジェクトで作られたもので、GNU環境(例 Linux)が一番に確認すべき環境だろ bashでの動きの話をしてるんだから、Linuxで検証するのが一番手っ取り早い。macOSの話を持ち出したのは「お前が」「あとからだ」 Debinaでは/bin/shの実体はdashなんだから、/bin/shの実体がbashの場合の挙動を確認するには環境を作らなければいけない もっとも、macOSでは、/bin/shは/bin/bashへのシンボリックリンクではなく 本物のbashでもなく、Appleによる改変版bashだったわけだけど
72 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:16:41.36 ID:k+c7cOcw.net] >>71 トンチンカンすぎるな。めちゃくちゃ。最後だぞw安心しろww /bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった Macあるやん、macOS使ってお前ほどの自称知っている人なら知ってるハズだろ だよ。なにをトンチンカンなことを。まあ、わかるよ、ごまかすのに必死なのは。アホらしい
73 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:18:47.82 ID:dSI5JGW8.net] 相手は神様なんだから敬ってやれよ > From: [36] デフォルトの名無しさん <sage> > Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG > > 現実世界では私は神なのだ
74 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:19:19.67 ID:++HFlOfG.net] >>69 > 確認もせず、オマ環を自分で作ってそれも忘れ、 前スレ>>975 でコードが書かれてから お前は「macOS環境のbash」とは一言も言わず、 bashの場合としか言っておらず、 >>996 で書いた実行ログの中にapple-darwinという文字が含まれていたのを 俺が見つけたっていう事実を忘れてないか?w
75 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:19:54.10 ID:k+c7cOcw.net] >>73 なにそれww オモロイとおもって書いたのかな?マジだったらオモロイんだけど
76 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:20:19.99 ID:++HFlOfG.net] >>72 > /bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった > Macあるやん、 Macでは/bin/shの実体は/bin/bashではない。バイナリが違ってる。 ってさっき書かなかったか?
77 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:21:29.72 ID:++HFlOfG.net] >>75 それはその数個上のレスを見ればわかるよ。 「現実世界では俺は優れたプログラマ」(といわれても証拠ないしなーw) とか言ってるやつがいたから、そいつに対するレス。
78 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:23:55.89 ID:k+c7cOcw.net] >>73 そのひとレスなのね。まあ、なんだ...まあ、いや、わからんwww まあ、いいや
79 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:24:54.08 ID:++HFlOfG.net] この話スレ建てる前に知りたかったなー。 macOS (10.14以前), は /bin/sh の実体が (Apple改変版)bash なので*特に*注意 って書き直したい
80 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 19:35:35.33 ID:++HFlOfG.net] これはひどいwww moriyoshi. はてなぶろぐ.com/entry/20090208/1234108045 > Leopard の「ターミナル」で、/bin/sh の echo -n がおかしい挙動を示
81 名前:します。 > > sh-3.2$ echo -n foo > -n foo > sh-3.2$ > 分ったこと: > > /bin/sh は bash だが、/bin/bash とは違うもの > which echo すると /bin/echo と言われるが、built-in のようだ > iTerm から起動すると echo -n はちゃんと動く > ターミナルで /bin/sh の echo は、iBCS2 コンパチとして動くのでしょうか? > google しても解決方法は分りませんでした。ご存知の方は教えて下さい。(_ _) > ... > > kzysk: なぜか iTerm は環境変数 COMMAND_MODE=legacy, ターミナルは unix2003 になっていて、 > その違いで sh 上の echo の動きがかわるらしいです。 [] [ここ壊れてます]
82 名前:デフォルトの名無しさん [2019/08/11(日) 22:27:57.25 ID:tjpar2Yg.net] やっぱりどこでも動くシェルスクリプトなんて妄想なんだねw
83 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 22:34:19.90 ID:owKtPG/2.net] POSIX準拠を意識してない未熟ものにとってはそうなんだろうな
84 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 22:39:31.82 ID:owKtPG/2.net] POSIX準拠を意識している者にとっては、-nが使えないとか 想定の範囲内だからね。yashとか使えないわけだし。 だから最初から-nを使うぐらいならprintfを使ってる。 POSIX準拠でコードを書いてる人にとっては何ら問題ないわけ
85 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 22:58:12.04 ID:tux8oNSc.net] あれだけアホ晒しても僕偉いww
86 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 23:02:56.27 ID:owKtPG/2.net] 俺が偉く見えてしまうのは、あんたの主観だから俺にはどうしようもないw
87 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 23:05:15.27 ID:tux8oNSc.net] >POSIX準拠を意識してない未熟もの 不特定多数が含まれるというのがわからないのね さすがあれだけアホ晒しても僕偉い人ww
88 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 23:08:19.13 ID:owKtPG/2.net] 不特定多数が含まれるからなんだっていうんだろう?
89 名前:デフォルトの名無しさん mailto:sage [2019/08/11(日) 23:10:58.42 ID:tux8oNSc.net] すげえよっ、さすがあれだけアホ晒しても僕偉い人ww脳の中身理解不能
90 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 00:45:59.42 ID:OLWOasI9.net] なんでスレ進んでたのかと思ったらまたはしゃいでたのか
91 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 00:50:54.61 ID:kdU0FwTT.net] 神様なんだろ。許してやれ (しかしネットは怖いな。やらかしたことがほぼ一生残る。)
92 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 00:56:58.46 ID:LRX4Utg1.net] なにやらかしたの?
93 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 01:16:22.35 ID:Mlg83N6h.net] よくわからん。揚げ足で騒いでるように見える。
94 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 01:48:53.53 ID:kdU0FwTT.net] 揚げ足というか、単に普通の失敗(理解不足)なんだけどな。 謝らないのが問題だった。 素直に謝罪しておけばよかったものを…。
95 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 02:03:12.93 ID:tYO0tRVG.net] 謝罪しろって韓国かよw
96 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 02:05:47.65 ID:U5E/4roV.net] Mac特有の挙動(UNIXの要求に合わせるためにAppleが独自で変更してる)なのに それに気づかないで、bashでは-nに対応してないって騒いでたんだっけ?
97 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 03:01:38.96 ID:vrbZPf3l.net] そう。挙句の果てに、Macでテストしてなかった お前が悪いとか言って荒らし始めた。
98 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 05:08:02.14 ID:kdU0FwTT.net] 自分に都合が悪くなるとすぐ韓国とかよく分からんこと持ちだして話を逸らすあたり, これは重症っすね……。
99 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 08:13:29.23 ID:TQ9KMPr7.net] これは人が離れて行くのも無理はないな ・自分の誤りを絶対に認めない ・人間関係は上下の主従関係のみで平等の概念がない どこかで見たことあるような...おや、誰か来たようだ
100 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 08:14:46.28 ID:d52ffprB.net] たしか前スレでも、質問してる側が下なんだから 回答する側に対してへりくだれ的なことを言ってたよな