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] たしか前スレでも、質問してる側が下なんだから 回答する側に対してへりくだれ的なことを言ってたよな
101 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 08:16:14.37 ID:d52ffprB.net] これだな。平等の概念がない 609 自分:デフォルトの名無しさん[sage] 投稿日:2019/08/07(水) 12:45:25.69 ID:WK8NJ3/V [18/28] >>608 回答者のほうが偉いみたいな考え方。 質問者と回答者は対等です。 610 返信:デフォルトの名無しさん[] 投稿日:2019/08/07(水) 13:00:34.72 ID:9POPBXN5 [8/13] >>609 対等じゃないよ。金を出す側と受け取る側と同じだもの。同じわけがないじゃん。 君はなんでそんな現実と食い違う思想を持ってるんだ?それでは人とのトラブルになるだけで世の中渡っていけんだろう。
102 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 08:22:26.39 ID:TQ9KMPr7.net] あ、ひとつ忘れてた ・論点のすり替えが上手
103 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 08:38:45.76 ID:HKovfvTl.net] またこいつは朝からシェルスクリプト「ではない」話をしてんのか
104 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 11:05:57.03 ID:kdU0FwTT.net] そうせざるえないほど酷い人がいるからね。 このスレの住人は結構優しいんじゃないかな。 人格欠陥者を罵しったり無視することは簡単だけど, その欠点を皆で指摘してくれるなんてかなり貴重だと思う。 まあどうせ当の本人は自分に対する攻撃としか捉えず, 都合の悪いことには目を塞ぐ能力をフル活用して目を翥すんだろうが。
105 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 11:48:18.69 ID:7x51tVmW.net] bash 依存だけどこんな関数を作って使ってた事もあった function _join { local IFS="$1"; shift; echo "$*" } bash$ _join , {1..10} 1,2,3,4,5,6,7,8,9,10
106 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 11:51:12.48 ID:OLWOasI9.net] いくらID変えても同じ言動なのがいよね 欲を言えばコテを付けてくれれば処分しやすいんだけど
107 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 12:15:08.81 ID:kdU0FwTT.net] ていうか3スレくらい前からワッチョイ導入しようという話がチョイチョイ出てはいる。
108 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 15:40:50.17 ID:FEiQT6YL.net] >>104 それをbash依存にしないのは簡単だよ localの代わりにサブシェルを使えばいい _join { (IFS=$1; shift; echo "$*") } ちなみにlocalはPOSIX準拠じゃないけど、 local もしくは localと同等のことができるtypeset のどちらかが POSIX準拠シェルのすべてに(おそらく)搭載されてるから 2パターン作ることになるが、サブシェルを使わずに作ることも可能 面倒だからOLDIFSに対比させるのが楽だけどねw
109 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:10:50.92 ID:7x51tVmW.net] _join () (IFS=$1; shift; echo "$*") でいいんじゃね
110 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:15:47.05 ID:FEiQT6YL.net] >>108 その書式、使えないシェルがあるんだよ。
111 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:18:53.19 ID:7x51tVmW.net] IFSを使う場合はデリミタに1文字しか使えないので その後はこんな↓ふうに書き直した(けど最近は全く使うことがない) function _join { local d="$1"; shift; printf '%s' "$1"; shift; printf '%s' "${@/#/$d}"; echo; } $ _join '->' {{1..4},5,{4..1..-1}} 1->2->3->4->5->4->3->2->1
112 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:20:03.86 ID:FEiQT6YL.net] あ、でも今調べたら相当古いbashだけみたい。ならいいか
113 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:20:31.00 ID:VzSWusfF.net] shellcheck のような書き方を指導する奴で POSIX準拠の書き方でないところをチェックするツールでもあるのか? 滅茶苦茶詳しすぎる
114 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:37:37.51 ID:FEiQT6YL.net] >>110 それをbash依存なくするにはループだろうな たぶん誰でもわかると思うのでコードは省略w local変数使わなくても行けるかも >>112 shellcheck 以外だと使ったことがないけど shfmt ・・・でチェックできるのか知らない。使い方がよくわからないw shfmtという名前を忘れたのでぐぐったら bash依存チェックするツールがあったよw https://sourceforge.net/projects/checkbaskisms/ https://github.com/openstack/bashate 俺はもうだいたい覚えたね。POSIX準拠の書き方を調べたと言うよりも とあるシェルで動かない。なんでや?POSIX準拠じゃないんかい。の繰り返しで。 だからPOSIX準拠だけど、シェルのバグで動かないっていうのも頭に入ってる。
115 名前:デフォルトの名無しさん mailto:sage [2019/08/12(月) 16:53:21.75 ID:FEiQT6YL.net] あ、たぶん>>112 の疑問に答えて
116 名前:ないw なんで古いbashで動かないのかがわかったかと言うと 古いバージョンのシェルをビルドしたテスト環境を用意していて 単に実行して確認しただけの話。 [] [ここ壊れてます]
117 名前:デフォルトの名無しさん mailto:sage [2019/08/13(火) 12:23:48.45 ID:PvshuRsa.net] $ ksh -c 'echo $KSH_VERSION' Version AJM 93u+ 2012-08-01 これのAJMはなんだろう?と思ってググったけど、 コンパイル時のオプションってことでいいのかな? https://www.in-ulm.de/~mascheck/various/shells/ksh_versions.html After "Version" now there is a concatenation of letters indicating compile time options: A SHOPT_AUDIT /* keyboard logging */ B SHOPT_BASH /* bash compatibility code */ L SHOPT_ACCT /* accounting */ M SHOPT_MULTIBYTE /* multibyte character handling */ Jはこれ? J SHOPT_COSHELL /* job pools */
118 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 23:08:43.05 ID:xN8IaB/K.net] 前スレでboshのビルドができないと言っていた人へ 2019-08-13版でビルドできるようになってます。 2019-06-13 OK 2019-07-15 NG 2019-07-22 NG 2019-08-13 OK
119 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 20:53:09.43 ID:R5VCpMP+.net] POSIXで定義されてるbatchとかatとかって使ってる? 俺は可搬性を失なう覚悟でcron使ってるけど
120 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 21:03:17.18 ID:He41kTu9.net] pythonで mycron.pyを書いた python さえ動けば
121 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 21:23:22.11 ID:g4f/iCif.net] >>117 atは昔使ったことがあるけど、覚えてないレベル batchは使ったこと無いな。 POSIXなんだよな。なんでかPOSIXの範囲にこんなものを 含めちゃっていいのか?って気がしてるw
122 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 21:26:52.13 ID:g4f/iCif.net] ん?cronはPOSIXじゃないけど、crontabはPOSIXなのか? これはコマンドは決まってるけど、それを実現しているものは決まってないってことなのかな?
123 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 21:30:38.30 ID:R5VCpMP+.net] >>120 多分manと同じ感覚なんじゃないかな? manというコマンドは決まってるけどroffの仕様は決まっていない。
124 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 13:02:29.86 ID:zqR8kD3Y.net] >>119 SCCSまで含めようという動きがあるんだから ジョブ管理くらいあってもおかしくないw それがPOSIXにほんとうに定めるべきコマンドなのか っていう疑念は拭えないけど。
125 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 13:29:09.33 ID:KK6bG3/n.net] いつまでも完成しそうもない開発系?のツールなんかより dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに だからいつまで経ってもMacのコマンドは貧弱でhomebrewでcoreutilsを入れなければいけなくなる LinuxをバンドルしたWSLは便利になった。
126 名前:デフォルトの名無しさん mailto:sage [2019/08/18(日) 19:00:47.29 ID:zqR8kD3Y.net] 単に拡張すりゃいいってもんじゃない。 どのシステムでも使えることを優先すべき。
127 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 03:40:41.24 ID:ZZoimR+D.net] >>123 > dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに それな。 date +%s がPOSIX準拠じゃないとかびっくりやわw unix timeどうすりゃいいねん。
128 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 04:03:23.22 ID:M9mgefHn.net] >>124 拡張っていうか仕様の標準化だな POSIXScript2020 とかいう仕様を作って 各社に対応を促す。 新POSIXScript2020に準拠していれば どこでも同じように動く
129 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 07:34:11.92 ID:JcVwKxxm.net] >>126 それに対応することによる各社のメリットとは?
130 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 08:34:19.51 ID:xlQPwL5
] [ここ壊れてます]
131 名前:+.net mailto: ないだろJK [] [ここ壊れてます]
132 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 08:35:48.66 ID:xlQPwL5+.net] ていうか言語仕様の素早い更新・機能追加が好きならPython使えば? 過去互換性も同じくらい重視したいならC#-shell
133 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 09:33:40.73 ID:W8+ngSHm.net] >>127 なんのためにPOSIXが出来て、みんなそれに対応してると思ってるの?
134 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 09:48:50.15 ID:JcVwKxxm.net] >>130 当時と現在の状況の違いが理解できない理想主義の人?
135 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 09:51:47.61 ID:W/U4wDij.net] 現在ってまだPOSIX改定されてるでしょ? 歩みが遅いことを批判するのは正しいが、 そこにPOSIXはもういらないっていうのは、 POSIXの存在を否定してるよ。
136 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 09:54:30.67 ID:xlQPwL5+.net] >>132 POSIX要らないって少なくともこのスレでは誰も言ってないけど いったい誰と戦ってるの?
137 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 09:59:46.47 ID:W/U4wDij.net] >>127 と戦ってるんだけど? 結論としては、POSIXは必要で、POSIXは改定されてる。 新しいPOSIXに対応する各社のメリットがわからないなんてなw
138 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 10:13:25.39 ID:U/sDEGN5.net] /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
139 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 11:28:24.99 ID:xlQPwL5+.net] 文体がちょっと違うから危うく荒しに構うところだった。 いつものチガイか。
140 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 11:36:19.43 ID:JcVwKxxm.net] >>134 POSIX要らないとか一言も書いてないのだが なんか変な妄想にとらわれてる人なの?いつもの
141 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 11:40:44.54 ID:W/U4wDij.net] >>137 そっちじゃないよw 新しいPOSIXに対応するメリットがわからないんでしょ?
142 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 12:46:41.76 ID:IzREAmBO.net] シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。 システムとして実用的なレベルまで規格拡張しないと使いものにならない。 現状のPOSIXは最低限のI/F仕様を規格化するだけの中途半端な規格だ。 将来的にネットワーク、ハードウェア管理、セキュリティなどシステムとしての仕様が標準化され、全てのシステムがそれに準拠するまでは、POSIXに固執する必要性は無いと言っていい。 もちろん、可能な範囲で可搬性を追求することは間違いではないと思うぞ。現状では限界があるということだ。
143 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 12:51:57.60 ID:4iryI+Qn.net] 現実として問題になってるのは、半ば当たり前のように書かれる Linuxで動くコマンドが、macOSで動かないことだよな ググって、なるほどこれでできるのか、って思ってもmacOSで動かないのは問題
144 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 12:52:53.15 ID:4iryI+Qn.net] >>139 POSIXはシェルだけを決めてるものじゃないよ。 コマンドとそのオプションも決めてる。
145 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 12:58:21.94 ID:IzREAmBO.net] >>141 シェル「だけ」とは言っていない。 ここはシェルスクリプトのスレだから、シェルについて言っている。 POSIXについては>>2 を読めば分かる。
146 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 13:02:42.41 ID:4iryI+Qn.net] >>142 主張がよくわからないんだけど 「シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。」から、 現状のPOSIXは中途半端で、もっといいものにするために新しいPOSIXを 規格化するべきだって言ってるってことあってる?
147 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 13:23:29.26 ID:oONnFCD4.net] POSIXのような標準はそう簡単には変更できないだろ。バージョンによるになるから そして、ツールを作るのは大なり小なり思想があってやっているんで、言うようなできる最大のものに合わせるなんてなりっこない 文句なり言うなら、POSIXにではなくBSDに言う方が現実的だし、文句言うくらいな自分で実装してBSDに上げればいいだろう。上げても却下されるとかあるかもだがw 言っているのは単にWebで探した事例がLinuxでBSDだと動かないってのだけだもん
148 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 13:40:48.28 ID:4iryI+Qn.net] >>144 難しく考えすぎでしょ。すでにある実装を採用すればいいだけ 思想なんかは、既に実装されてる時点で問題ないということだし。 POSIXにではなくBSDに言う方が現実的というけどBSDの現状知ってる? すでにgreadlinkとかgtarとか結局GNU版を実装しちゃってるの。(その逆は聞かない) そういう二重開発をなくすためにも、今の実装(の一部)をPOSIXにしてしまうべきだと思うね
149 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 13:51:36.11 ID:oONnFCD4.net] >>145 その採用がだよ。やりとり見てみ。はいそうですねでは進んでないから それはいらないとかふつうにあるぞ。POSIXに限らず 何言ってるの?単にBSDにGNU coreutilsのパッケージがあって、それが入ることもあるってだけだよ。gって自分で付けて気づかないの?GNU coreutilsが入っているのが嫌という人も居るようだけど
150 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 13:53:39.09 ID:4iryI+Qn.net] >>146 > はいそうですねでは進んでないから ? 思想とかなんとか困難な道を乗り越えて見事、採用されたものを POSIXにも入れればいいだけって言ってるんだけど
151 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 14:01:04.44 ID:oONnFCD4.net] 何を言いたいのかさっぱり BSDも標準では入ってないぞ GNU coreutils は。何かそれを必要としたパッケージがあってそれにともないだろう パッケージは誰かが作ってそれなりに利用されるのならわりと簡単にだぞ?パッケージだからな。必要な人は入れるというだけの
152 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 17:39:47.54 ID:xlQPwL5+.net] ・POSIXに準拠することにはメリットがある ↑これは俺もそう思うけど(正しいかどうかは別にして) ・今のPOSIXでは不十分なので,規格を拡張して,各社にそれを追従するよう促すべきだ ↑これは違うと思う。POSIXの「不便さ」は「どこでも動く」ことの引き換えであることを忘れてはいけいない(ルポ風)
153 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 17:40:43.60 ID:xlQPwL5+.net] cat >>149 | sed -e 's/いけいない/いけない/'
154 名前:デフォルトの名無しさん [2019/08/19(月) 18:49:04.48 ID:0HwI7cO5.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね。
155 名前:デフォルトの名無しさん [2019/08/19(月) 19:12:44.68 ID:peefgVfy.net] Write once, Bug anywhere.
156 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 19:43:03.92 ID:6nSAEgtv.net] >>149 でも「今のPOSIXでは不十分なので,規格を拡張して」は 遅いながらも今のPOSIX団体がやってることですよ? POSIX団体がやってることを批判するんですか?
157 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:19:55.37 ID:WiF5XT2w.net] bashで長いシェル書いてるといつもたくさんファイルを生成してしまうんだが上手い具合に生成しなくて済む方法ってある?
158 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:22:05.55 ID:oWmB5KZ/.net] >>154 たくさんファイルってどういうこと?
159 名前:蟻人間 mailto:sage [2019/08/19(月) 20:25:47.56 ID:GYeBbzEk.net] >>154 パイプ。リダイレクション。
160 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:28:19.59 ID:WiF5XT2w.net] >>155 どっかからデータをとってくる raw_file(最初) user_file user_and_id_file format_file(完成形) めっちゃテキトーに書いたけどこんな感じで4つぐらい作られてしまう rmで消すのって有りなのかな
161 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:29:18.05 ID:oWmB5KZ/.net] はぁ? と言われましても、 無駄なら無駄なところをなくせ、必要ならそうするしかないで終わるんだが? それじゃ全く何もわからないよ
162 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:33:15.52 ID:WiF5XT2w.net] >>156 参考になりました。ベストアンサーあげます
163 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:50:25.65 ID:JcVwKxxm.net] >>149 おれは、促すまではいいと思うが、こんな所での妄想レベルの機能なんか 促されたからってそうホイホイ実装しないだろうと思うんだな
164 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:53:38.13 ID:PiISpjsD.net] >>160 人の話ちゃんと聞こうぜ? 誰も妄想レベルの機能を言っちゃいない。 既に実装済みの機能をPOSIXで標準化しようって話をしてる。
165 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 20:58:54.83 ID:QrnBNgWe.net] pasteで処理の結果をくっつける方法ってありますか? 処理A、処理B、処理Cの計3つでファイルを作成せずにくっつけたいです。
166 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:02:40.84 ID:WV8MsfnG.net] Xxx <(Yyy) <(Zzz) こんな感じのがあったような?
167 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:03:35.55 ID:PiISpjsD.net] >>162 pasteは複数のファイルを受け付ける pasterは標準入力からも受け付ける この二つのどちらかまたは両方を使えばでできるでしょ?
168 名前:デフォルトの名無しさん [2019/08/19(月) 21:03:42.78 ID:peefgVfy.net] プロセス置換でできるかな?
169 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:04:17.45 ID:PiISpjsD.net] あ、入力元はファイルじゃないのか?
170 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:06:17.42 ID:xlQPwL5+.net] >>163 BashやZshに依存してもいいならこれ。
171 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:08:14.71 ID:PiISpjsD.net] pasteは複数の標準入力を受け付けるみたいね printf '%s\n' a b c d e f g | paste - - - a b c d e f g だから処理A、処理B、処理Cをそれぞれ1行ずつ 出力できるならくっつけられるね。
172 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:12:53.53 ID:PiISpjsD.net] あとは処理A、処理B、処理Cの順でデータを出力するなら、 それぞれ変数に入れといて、1行ずつとりだすとか。 まあできなくはない。
173 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:26:09.66 ID:PiISpjsD.net] >>167 > BashやZshに依存してもいいならこれ。 どこでも動かないのはPOSIXに>>163 が入ってないからだね
174 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:32:21.04 ID:R3NGICj0.net] >>154-159 一時ファイルとか、メモリ内ファイルとかは?
175 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:38:04.83 ID:PiISpjsD.net] >>162 あ、nlとsort使えばいけるじゃん。 ( 処理Aを出力 | nl -i3 # 1, 4, 7 と行番号をつける 処理Bを出力 | nl -i3 -v2 # 2, 5, 8, と行番号をつける 処理Cを出力 | nl -i3 -v3 # 3, 6, 9, と行番号をつける ) | sort -n | paste - - - | 行番号を削除 これでできないかな? 行番号を消すのは、nlの-sで区切り記号をつけられるから、 cutかsedでやればいいかな? 1行目が1ってわかってるから、 行番号の文字数もわかるので、あとはどうにかw
176 名前:デフォルトの名無しさん mailto:sage [2019/08/19(月) 21:52:44.53 ID:PiISpjsD.net] こんな感じかな? a() { printf '%s\n' a b c d e; } b() { printf '%s\n' A B C D E; } c() { printf '%s\n' 1 2 3 4 5; } { a | nl -i3 -v1 -s: b | nl -i3 -v2 -s: c | nl -i3 -v3 -s: } | sort -n | cut -d: -f2- | paste - - - 出力 a A 1 b B 2 c C 3 d D 4 e E 5
177 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 07:40:59.29 ID:Gkd3xMH4.net] そのsortって安定だっけ。 じゃなかったら処理結果が入れ替わるおそれない?
178 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 08:07:31.90 ID:JOMXhFk+.net] >>174 安定になる条件と行番号の関係について 考えてみようか?
179 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 08:24:06.78 ID:Gkd3xMH4.net] POSIX sortだと-s(=stable sortのs)オプションが提供されてないので どう足掻いても安定にはならんな。 「たまたま」順番が変化しない場合もあるやもしれんが。
180 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 08:37:08.94 ID:JOMXhFk+.net] なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
181 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 12:54:26.88 ID:/fB0Ptq3.net] >>176 「安定」の意味分かって書いてる?
182 名前:デフォルトの名無しさん [2019/08/20(火) 13:41:04.53 ID:tzbk8R3g.net] 安定の書き込みクオリティ
183 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 13:47:15.01 ID:/V4ccaND.net] シェルスクリプトってテキストファイルこねくり回すくらいしかできないんだよな
184 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 13:52:13.54 ID:I7f/WloD.net] それで十分ですよ
185 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:13:37.74 ID:Gkd3xMH4.net] バイナリファイル扱えるスクリプト言語ってある? Pythonとか?
186 名前:デフォルトの名無しさん [2019/08/20(火) 17:15:25.76 ID:OyLrpvkx.net] 使えないの挙げたほうが速いのでは?
187 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:32:48.20 ID:30Dp6unL.net] 使えるほうが多いのか?
188 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:47:53.72 ID:CuOLtXP9.net] シェルスクリプトでバイナリを扱いたければ odを使うしか無いだろう。 zshはNULLを扱えたはずだが、 bashやそれ以外はNULLを扱えない。 例のawkおじさんは、awkスクリプトで頑張ってるようだが もちろんあれはシェルスクリプトではない
189 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:56:41.96 ID:/V4ccaND.net] >>182 扱えるというのはバイナリファイルの編集ができるってことだよね
190 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 17:57:11.37 ID:Gkd3xMH4.net] 無知ですまんがAWKおじさんってだれ? なんか否定的な書き方だけど悪名高いコテハン?
191 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:00:14.90 ID:CuOLtXP9.net] >>187 自称シェルスクリプトで色々頑張ってる人。ググればわかる。 悪名高いコテハンではないが、俺的にはあのセンスが受け入れられない。 色々頑張ってるが、コードを見るとawkスクリプトを シェルスクリプトで生成して、メインの処理はawkで 実行してるのでダサい
192 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:01:35.41 ID:/V4ccaND.net] >>187 https://github.com/ShellShoccar-jpn
193 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:05:24.00 ID:CuOLtXP9.net] odの他にhexdumpとかでもできるがhexdumpはPOSIXじゃない。 あとbase64もPOSIXじゃない。 あとは出来る可能性があるとすれば uuencode だけど あれを処理するのは難しいだろうな。
194 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:07:02.56 ID:CuOLtXP9.net] >>187 > なんか否定的な書き方だけど 別に否定はしてない。awkもPOSIX準拠だから物自体はいいけど シェルスクリプトじゃないよねって話
195 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:10:40.86 ID:Gkd3xMH4.net] >>189 あぁ、この人のことか。ありがとう。 なんかQiitaかどっかでメチャメチャ喧嘩腰のコメントしてた記憶があるわ。 https://qiita.com/richmikan@github/items/5158eac47467d8a29056 ↑ここのコメントとかかな。 言ってることは正しいのかもしれんが、ちょっと品性に欠けるなぁと思った。
196 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:15:23.89 ID:Gkd3xMH4.net] >>190 実はBase64はPOSIXの範囲でも(簡単に)実現できる。 pubs.opengroup.org/onlinepubs/9699919799/utilities/uuencode.html によればuuencode -m /dev/stdoutこれでほぼbase64コマンドと同じ挙動になる。 ていうか/dev/stdoutってPOSIXで規定されてないのにその肝心の公式が仕様書内で /dev/stdoutを使っちゃっていいのかねw
197 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:19:45.77 ID:5hgm7I5A.net] >>193 base64をしたいんじゃなくて、base64コマンドはPOSIXじゃないって意味なんだけど その文章の読めなさ、相変わらずやなw
198 名前:デフォルトの名無しさん [2019/08/20(火) 18:23:52.47 ID:PFkWfbQh.net] POSIX、POSIXとか言ってるやつも、AWKおじさん並みのKitty。
199 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:25:32.24 ID:Gkd3xMH4.net] Base64を実現したくはないのにbase64コマンドが必要な状況ってどんなのだろう…?
200 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:27:06.57 ID:5hgm7I5A.net] 今シェルスクリプトでバイナリを扱う話してたろうが そういうとこやで
201 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:41:10.24 ID:Gkd3xMH4.net] こりゃダメだ
202 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:49:07.29 ID:5hgm7I5A.net] ふぅ。アスペに説明しても理解できないかもしれんが(他の人は理解できるだろうから書くけど) 1. シェルスクリプトはテキストを扱えない。という話が発端 (>>180 ) 2. バイナリを扱うにはどうするか?→バイナリをテキストに変換するコマンドを使えば良い 3. POSIXの範囲ではodが最適。hexdumpやbase64コマンドはPOSIXではない ここまではまともな流れ。 なぜかBase64を実現したいことだと勘違いする>>193 (バイナリ→テキストを実現するための)base64 "コマンド" の話だというと なぜかBase64を実現したくないのにとか、斜め上のことを言い出す>>196
203 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 18:52:24.07 ID:/V4ccaND.net] はい解散
204 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:00:45.18 ID:Gkd3xMH4.net] 自分の主張をマトモだとか言っちゃう男の人って…
205 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:02:58.01 ID:ar+OimNr.net] こいつ素でやってるのか?w 会話の流れがまともだって言ったら、 今度は主張がまともと言ってるんだと読み間違えやがったw まあ確かにそのとおりではあるが、 文章はそう読めるはずがないよな
206 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:15:26.86 ID:/fB0Ptq3.net] >>201 そんでsortの何が安定なのかは分かったの?
207 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:24:50.14 ID:Gkd3xMH4.net] sortの話はもう終わったでしょ、お爺ちゃん。
208 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:27:12.41 ID:ar+OimNr.net] >>204 あんた最後になにもレスしてないよね? お前が間違っていましたってことで終わったの?w
209 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:28:59.99 ID:ar+OimNr.net] 176 名前:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 08:24:06.78 ID:Gkd3xMH4 [2/10] POSIX sortだと-s(=stable sortのs)オプションが提供されてないので どう足掻いても安定にはならんな。 「たまたま」順番が変化しない場合もあるやもしれんが。 177 自分:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 08:37:08.94 ID:JOMXhFk+ [2/2] なんで重複しない行番号の順にソートして並びが入れ替わるんだよw 178 名前:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 12:54:26.88 ID:/fB0Ptq3 [1/2] >>176 「安定」の意味分かって書いてる? 179 名前:デフォルトの名無しさん[] 投稿日:2019/08/20(火) 13:41:04.53 ID:tzbk8R3g 安定の書き込みクオリティ
210 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 21:30:41.86 ID:ar+OimNr.net] ここで、終わったって自分で言ってるから、 ここで\(^o^)/オワタなんだろうなw
211 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 22:46:08.19 ID:Gkd3xMH4.net] お爺ちゃん怒りの3連レス。そんなに熱くならなくてもいいのに。冷房がもったいないw
212 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 23:02:20.69 ID:55BxDwsc.net] みっともないな>>204 が
213 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 23:39:15.24 ID:I7f/WloD.net] 自称「神様」には何を言ってもムダ
214 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 00:33:27.35 ID:XuzWeGbv.net] 自分が常に正しいと思ってる奴にロクな奴はいない
215 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 02:24:45.15 ID:GZen3C6t.net] >>208 あはは。二代目神様襲名おめでとうw
216 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 11:27:36.55 ID:eilohrgH.net] 思ったんだけどbash依存するのってなんの機能を使いたくてbash使うの? bashだけにある機能の事なら知ってる
217 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 11:41:07.46 ID:g3Au7XoK.net] ぐぐったら出てくるから
218 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 11:42:23.31 ID:CWF24/8E.net] 別に使いたいわけじゃなくて、ぐぐったらそれがbashスクリプトだったってこと? じゃあそのbashスクリプトを書いた人はなんでって話になるけど
219 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 11:43:24.61 ID:CWF24/8E.net] 訂正 × そのbashスクリプトを書いた人はなんでって話になるけど ○ そのbashスクリプトを書いた人はなんの機能を使いたくてbashを使っているの?
220 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 12:37:03.95 ID:+hDHTeft.net] bashしか使わない人がbash依存して何か問題あるのかね シェルに限らずLinuxしか使わない人が「Windowsでも動く」プログラムを書く必要はないし (シェアの低い変なコンピュータ使ってる人はその人だけ苦労すればいい)
221 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 12:38:05.34 ID:tOxptV2F.net] > bashしか使わない人がbash依存して何か問題あるのかね 問題ないよ。なにを目的にbash依存してるのか聞いてるだけ
222 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 12:58:08.94 ID:23vMmTO3.net] >>218 >>217 って言ってるだろう bashを使い他を使うこともないから、わざわざ他を意識する調べることがないってことだろ
223 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:00:19.86 ID:tOxptV2F.net] >>219 bashのなにかの機能を使いたくてbashにしているわけじゃないってこと? 配列とかbashにしかないなにかの機能を使いたいからbashを使ってるんじゃないの?
224 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:02:07.60 ID:23vMmTO3.net] 大多数はそんなこと気にしてないだろう 配列使うにしてもシェルスクリプトで配列使えるか調べ、現在使ってるシェル(大多数がbashだろう)で使えればそう使ってるだけだろう
225 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:05:16.74 ID:tOxptV2F.net] なんかそれだとbashにする理由はないのに bash依存してるって言ってるように見えるなw
226 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:07:38.33 ID:23vMmTO3.net] 逆でもあるだろうに。それで問題ないなら問題ないだろに てか、>>217 って言ってるのをを未だに理解できないの?理解したくないの?
227 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:09:19.14 ID:ttxmDenw.net] 結果的にbash依存になっているが当人はそんな事を意識していない、って感じ
228 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:09:33.13 ID:tOxptV2F.net] >>223 君が質問に答えないからだよ 質問 > 思ったんだけどbash依存するのってなんの機能を使いたくてbash使うの? 結論 特になにかの機能が使いたいわけではないが、動いてしまったからbash依存になっただけ
229 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:11:10.44 ID:23vMmTO3.net] そう>>217 が言っているんだがな。なにか文を変えたいだけか?それもいやらしく いつのもやつか、やっぱり
230 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:11:19.76 ID:tOxptV2F.net] >>224 そうそう。そういう感じの答えが欲しかった。 (便利だから)特定の○○の機能が使いたい or 理由はない そういう答えを期待していた。
231 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:12:38.86 ID:tOxptV2F.net] bashの機能のうち、これは絶対欲しいっていう機能は あまりないってことなのかな?
232 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:18:24.42 ID:8muhIeVb.net] 最初から「bashの便利な機能」を聞いてるのに、 思いつかないなら無いって言わないから話がこじれるんだろう。
233 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:26:22.43 ID:23vMmTO3.net] bashの便利な機能ってのが何を聞いてるのか曖昧だからな kash,zshなどでも同じくあるのではないあくまもでbash独自の機能なのかなんななの曖昧 シェルスクリプトに限らずスクリプトに限らずマルチプラットフォームを意識するかどうかの話にならざるを得ないだろう
234 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:28:58.51 ID:rB/3mk9e.net] という話をして欲しいんじゃなくて (あんたが思う)bashの便利な機能を聞いてるんだよ
235 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:30:51.65 ID:KOXkIKEx.net] 思いつかないなら、無いって素直に言えばいいじゃん。言い訳ばっかり
236 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:30:58.28 ID:23vMmTO3.net] ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なのかなんなのか曖昧 bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう。もちろんそんなに便利でもないのもあるだろうけど
237 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:31:56.80 ID:23vMmTO3.net] >>231 ,232 ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なの?
238 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:32:58.59 ID:oH2mxJhX.net] >>233 POSIXにはなくて、bashにしかない機能。 kshやzshの話は聞いてないので無視して良い これで質問に答えられるよね?
239 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:35:01.88 ID:23vMmTO3.net] 配列w readのオプション 他にもあるけど、すぐに思いつかない、便利と意識して使ってるわけではないからな。空気と同じだよ
240 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:35:54.29 ID:ttxmDenw.net] あまり便利だとは思わないけどよく使ってるのは "&>" と連想配列(declare -A)
241 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:39:22.38 ID:dVKYqL0H.net] ほんと質問に答えさせるのに何レス消費させるのかw 配列、連想配列、readのオプション、"&>" これぐらいか?
242 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:40:56.88 ID:ttxmDenw.net] 自称「神様」のきまぐれなお遊びに付き合ってやってるんだ ありがたく思いやがって下さい
243 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:41:29.73 ID:dVKYqL0H.net] あぁ昨日のsortが安定の神様かw
244 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:41:30.49 ID:23vMmTO3.net] >>235 といい質問に「答えさせる」といい、なんか見えすぎなんだけどな どしたの? あんたの意図がわからんからだよ。何をしたいの?いつもの負けん気だけか? bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう って言ってるんだけど。だから空気と同じと言っているんだがなあ
245 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:44:31.57 ID:dVKYqL0H.net] という話をなんでするんだろう?w
246 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:44:58.76 ID:dVKYqL0H.net] ほんと、質問の関係ない言い訳ばかりするよなw
247 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:45:07.40 ID:23vMmTO3.net] >>240 俺のことなら違う。俺は>>204 だったりするんだがなw
248 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:46:22.58 ID:dVKYqL0H.net] >>244 やっぱりsortのおじちゃんじゃんw 安定の意味わかったの? どうして行番号順にsortしてるのに、 並び順が変わると思ったの? まだその答え聞いてないよ
249 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:46:59.44 ID:23vMmTO3.net] >244 おお...違う違うwなんて間違いを 俺は>>209 だったりするね >>242 あんたの意図がわからんからだよw
250 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:47:41.90 ID:cs49NQcU.net] 意図がわからないなら、意図がわからないから教えてといえば良い
251 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:47:49.79 ID:23vMmTO3.net] >>245 ノリでそのレスしたのか、嬉々としてそのレ
252 名前:Xしたのか、嬉々としてならすまんかったw [] [ここ壊れてます]
253 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:48:55.17 ID:l+gTzvUp.net] んでsortの話はどうなったの? 安定がどうとか
254 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:50:29.02 ID:23vMmTO3.net] >>247 そこに噛み付いている意味がわからない 会話として楽しんでいるんだからいいんじゃないの?みなさん(?)は とか言ってみるw
255 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:55:16.57 ID:+thc3RuF.net] bashのプロセス置換は便利だなー(棒
256 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 13:55:38.38 ID:Z+yguh+d.net] 働けよクソニート
257 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 14:00:20.39 ID:+thc3RuF.net] ブレース展開も便利だなー
258 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 14:21:13.28 ID:+thc3RuF.net] 可搬性を求めるならPOSIXで書く。 テキストこねくり回す程度のものなら書ける。 可搬性要らないor自分の環境で動けば良いなら好きに書けば良い。 bash,zsh依存でOK。ちゃんとシバン書いてな
259 名前:デフォルトの名無しさん [2019/08/21(水) 15:27:51.40 ID:zqKd/4GT.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね。
260 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 16:35:44.19 ID:MMv7CGOe.net] 初めて触れたRH8も、Cygwinもbashだったから、 今でもふつうにbash使ってるな。 それにしても、bashはなんでこんなに嫌われてるんだ?w
261 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 16:44:32.20 ID:MKRUgKM/.net] ま、bashがデフォルトシェルじゃないOSもそれなりにあるもんな
262 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 17:14:23.54 ID:M+fZiddG.net] いつかカーソルキーのないキーボードを使うかも知れないから常にHJKL使えってvimスレの仙人が言ってた
263 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 17:36:09.70 ID:+thc3RuF.net] >>258 Emacs使いはHJKL使わないってじっちゃんが言ってた
264 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:28:59.77 ID:/hAWXHxO.net] >>257 Webサイト向けだが、UbuntuとDebianをあわせて59.7%がbash拡張の無いdashだからね https://news.mynavi.jp/article/20190701-851849/
265 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:32:04.69 ID:CEaWdSia.net] >>256 bashがデファクトスタンダード的なもんだからな。採用の多さから ksh,zshなどと置き換えても同じことだったりしてるからな、単なる象徴的な名称としてだけだろう あとは/bin/shがbashな場合にイマイチな仕様だったりするとこか
266 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:33:05.60 ID:/hAWXHxO.net] あとmacがbashをやめてzshになるらしいので、それなりどころか 過半数以上がbashを使わなくなりそう。 まあmac版のzshはbashと互換性があるように デフォルトオプションを変更してそうな気がするけど shwordsplitとか >>258 bash以外を使うことがないって言いたいんだろうけど、その例えは的外れかな 現に多くの人がbash以外を使ってるわけだから
267 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:34:57.26 ID:/hAWXHxO.net] あ、そういやWSLもUbuntuだっけか。他のディストリも使えるけど そう考えるとdash使ってる人、かなりいるな。
268 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:35:53.33 ID:CEaWdSia.net] >>261 ,256 訂正。bashを嫌ってる人はいるみたいだった。理解できんw
269 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:45:33.15 ID:/hAWXHxO.net] >>264 bashコードなのに#!/bin/shを名乗るなってことでしょ? Ubuntu/Debianでdashが採用されたのは パフォーマンスがいいかららしい。 https://wiki.archlinux.jp/index.php/Dash > 実行速度が速い。Bash などのシェルに比べて 4倍高速 に動作します。 その際にbash依存しているのに#!/bin/shを使われていたから 変更するのに手間がかかったって言われてるね。 あとセキュリティもbashよりもdashのほうが高そうだし。bashは今も機能加えてるから新たに脆弱性が生まれてくる可能性も高い。 https://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF%E8%84%86%E5%BC%B1%E6%80%A7 > 2014年9月に公表されたBashについての一群の脆弱性(CVE-2014-6271 [1] 等)の発見は、 > 俗にシェルショック(Shellshock)、バッシュドア(bashdoor)と呼ばれている。 > 関連して6つの脆弱性が登録された。
270 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:51:13.28 ID:CEaWdSia.net] なんかいきなりdash推ししているのがいるが>>257 のいうデフォルトシェルがソレを指しているのって疑問 >>256 なんぞからはデフォルトシェルはログインシェルのことを言っているのかと思ったけど ちなみに大好きなPOSIXでググってみたが、デフォルトシェル=ログインシェルだなあ。引っかからなかったなにかがあるかもだが、引っかかったのがpasswd関連んとこだけというのもあり
271 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:53:39.23 ID:/hAWXHxO.net] >>266 ログインシェルがbashでも (UbuntuやDebianでは)#!/bin/shはdashだから
272 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 19:55:50.58 ID:CEaWdSia.net] 話が通じてないなw
273 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:02:35.45 ID:MMv7CGOe.net] >>263 Ubuntu on WSL だと、デフォルトシェルはbashになる。 chshしない限り、WSLではbashのままの人が多いだろうな。
274 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:02:40.75 ID:/hAWXHxO.net] >>268 ここでデフォルトシェルの定義がどうこう言っても無意味だっていう話 https://wiki.ubuntu.com/DashAsBinSh > Why was this change made? > The major reason to switch the default shell was efficiency. デフォルトシステムシェルのことを デフォルトシェルと呼んでる例なんていくらでもあるんだから
275 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:04:25.00 ID:/hAWXHxO.net] >>269 > Ubuntu on WSL だと、デフォルトシェルはbashになる。 話通じてないなw その人が書くシェルスクリプトの一行目には、どうせ #!/bin/sh って書くでしょ? デフォルトログインシェルがなんであろうが、 デフォルトシステムシェルは dash になるんだよ。
276 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:08:56.78 ID:MMv7CGOe.net] >>271 ああ、そいういうことね。 $ ll /bin/sh lrwxrwxrwx 1 root root 4 7月 26 2018 /bin/sh -> dash*
277 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:09:40.60 ID:CEaWdSia.net] 誰かがデフォルトシェルと言えばそのデフォルトシステムシェルのことだと言っていたからなあ 流れ的に同じこと言っているなと。そんな話はしてないんじゃねえのってとことだな
278 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:12:54.47 ID:/hAWXHxO.net] >>266 > ちなみに大好きなPOSIXでググってみたが、デフォルトシェル=ログインシェルだなあ。 POSIXが/bin/shについて語ることはあっても、 /bin/bashについて語ることはないと思う POSIXの世界のシェルには/bin/shしかないのでは?
279 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:17:07.13 ID:CEaWdSia.net] "default shell" というのはあるんだよ。そしてそれを指しているのはログインシェルっていう なにか問題でも?ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもないってことだな、POSIXでの文章でそうなんだから そして、ログインシェルの話をしていたって>>269 で明らかになりましたってとこで俺は満足してますがw
280 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:19:20.00 ID:MMv7CGOe.net] >>274 > POSIXの世界のシェルには/bin/shしかないのでは? そうなの? 20年くらい前のbashの解説書 "bash Manual & Reference" には、 Bourn Shell(sh/bsh)をPOSIXに準拠させるために書き直したのが Bourn Again Shell(bash)というふうに書かれていて、 そういうもんだと思ってたわ。
281 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:20:46.30 ID:/hAWXHxO.net] >>275 うん、だからそこでデフォルトログインシェルの話をしたって意味がないでしょう?と言ってるわけ。 重要なのは /bin/sh の話だよ。 #!/bin/bash と書いてbashスクリプトを書くのはいいけど #!/bin/shと書いていながらbashスクリプトになってるから嫌われているわけで
282 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:25:13.92 ID:CEaWdSia.net] ふーん 食いつき&その後レスからそうとは思えないけど、まあそういうことでいいよw
283 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:26:05.08 ID:/hAWXHxO.net] >>276 POSIXの世界にbashが出てくることはない。の反証として bashの世界にPOSIXが登場したと言っても、それは反証になってないよw
284 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:28:27.61 ID:LqLocPLj.net] bash bash bash fish and bash
285 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:29:21.72 ID:/hAWXHxO.net] >>278 なんでそう、本当は納得してないけど 納得してあげました風の言い方をするかな?w 最初から書いてるんだけど↓ 265 自分:デフォルトの名無しさん[sage] 投稿日:2019/08/21(水) 19:45:33.15 ID:/hAWXHxO [4/10] >>264 bashコードなのに#!/bin/shを名乗るなってことでしょ?
286 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:33:57.11 ID:CEaWdSia.net] >>281 ああ、いつものだなってとこだなw ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもない というのがわかった|わかっているようなので、まあいいよってとこだよ まさしく、その最初からも読み違いとしか思えないけど、まあそれもw
287 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:35:07.03 ID:/hAWXHxO.net] >>282 ふーん、まあそういうことでいいよw ↑このレスにムカついた? それがあんたがやってることだよ。
288 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:36:27.37 ID:CEaWdSia.net] ムカついたのね。まあムカつくように書いたんだけどwなぜかはひみつww
289 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:40:12.26 ID:/hAWXHxO.net] あーあ、とうとう反論はできないから、 ムカつかせるためだけにレスをしたって認めちゃったw そういうとこやで
290 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:42:42.39 ID:CEaWdSia.net] なんの反論????いきなりすぎて意味わかりません、なんの反論すればいいの????? ちなみに、>>276 は「そういうもんだと思ってた」と言っているように反証でもなんでもなく、困惑しているんじゃないかなあと思ってみたり
291 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:43:23.13 ID:/hAWXHxO.net] >>286 ふーん、まあそういうことでいいよw
292 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:43:52.96 ID:CEaWdSia.net] それなら、よしっww 終わって何よりw
293 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:44:38.88 ID:/hAWXHxO.net] だからそういうことでいいってw
294 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:45:06.34 ID:/hAWXHxO.net] bashコードなのに#!/bin/shを名乗るなってことでしょ? ということが最後の話となった
295 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:45:11.83 ID:CEaWdSia.net] だからそれでよかったねえw
296 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:45:37.37 ID:ttxmDenw.net] ,. '"´ ̄ ̄ ̄ ̄``ヽ、 /::::::::::::::::::::::::::::::::::::::::::::::\ /::::::::::::;.: --─---─-、:::::::::::::ヽ ./::::::::::::/ィC¨ヽ \:::::::::::l /:::::::::/ └¬'´, ィC¨ヽ';:::::::::! ./::::::::イ / ,. ヽ `¬┘';:::::::! l::::::::::::l /ハ ハ } ヾ::::j {::::{⌒l:! / ` ' ヽ V} . ';:::l ゝリ l ,/ ̄¨ヽ ', }l ヾヽ__j { {,. -−‐‐ヘ {,l ヾ::::| i ヽ ヽェェェェェノ { }:::l ヽ ` ̄¨´ ノ } ヾ;k \_ __ ,/ } "|  ̄ ̄ ̄ ノ _,. -‐"\ フー-、_ '"´ `ヽ、 / ┼ヽ -|r‐、. レ | d⌒) ./| _ノ __ノ --------------- 制作・著作 NHK
297 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:46:44.09 ID:/hAWXHxO.net] >>291 あぁ、反論っていうのは、これに対する反論だよ。
298 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:47:09.06 ID:/hAWXHxO.net] これって言うのは、これね > bashコードなのに#!/bin/shを名乗るなってことでしょ?
299 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:49:21.93 ID:/hAWXHxO.net] >>257 > ま、bashがデフォルトシェルじゃないOSもそれなりにあるもんな bashがデフォルトシェルじゃないOSってなに? 流石にWindowsのことではないと思うけどw
300 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:50:16.25 ID:/hAWXHxO.net] いや、OSもそれなりにあるもんなっていうから そのOSはそれなりに使われてるんだろうなと思ってね。
301 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:51:38.32 ID:CEaWdSia.net] 誰もそんな話はしてないと思うし、俺は最初ので触れているんだけどな 誰かみたいに「名乗るな」とか言わなけどw てか、続けんのかよw自分の言ったことを忘れすぎだろう あら、あら、まあ。いつものだな。終わりますww
302 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:52:22.52 ID:/hAWXHxO.net] あぁ、デフォルトシェルっていうのは、 デフォルトシステムシェルってことか https://wiki.ubuntu.com/DashAsBinSh > Why was this change made? > The major reason to switch the default shell was efficiency. ↑この文脈の「the default shell」 それならたしかにたくさんあるわ
303 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:53:10.58 ID:/hAWXHxO.net] >>297 ふーん、まあそういうことでいいよw
304 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 20:54:13.14 ID:/hAWXHxO.net] デフォルトシステムシェルっていうか システムが使うデフォルトのシェルっていうべきかな?
305 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:33:16.44 ID:WsJBrYLB.net] macOS10.15でzshに変更になるって話、/bin/sh は結局何になるんだろう? zshかな?って思ってたけど、dashの可能性もあるのかな? ここ読んで知ったけど https://scriptingosx.com/2019/06/moving-to-zsh/ ログインシェルに /bin/dash を選べるようになってるらしい。 https://support.apple.com/en-us/HT208050 (homebrewの話ではないよ)
306 名前:デフォルトの名無しさん [2019/08/21(水) 21:33:59.34 ID:l+BF9a7q.net] やっぱりどこでも動くシェルスクリプトなんて幻影なんだね
307 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:46:11.50 ID:CEaWdSia.net] >>301 その https://support.apple.com/en-us/HT208050 How to test your shell scripts If you change /var/select/sh to a shell other than bash, be aware that scripts that make use of bashisms may not work properly. からはbashっぽいかなあ。変わった直後でもあるmacOS10.15では
308 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:49:36.68 ID:WsJBrYLB.net] >>303 ふーん、まあそういうことでいいよw
309 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:51:21.56 ID:g3Au7XoK.net] ソートの安定の話はどうなったの?
310 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:54:13.22 ID:vg8ZIjZS.net] >>305 行番号が付いてるから、安定以前に並ぶ順番が入れ替わることはない。 > POSIX sortだと-s(=stable sortのs)オプションが提供されてないので とか言ってるやつが間抜けでした。 (いつもの誤読ばっかりしてるやつだろう) で終わりじゃない?
311 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:54:40.89 ID:CEaWdSia.net] 何が気に障ったのかわからんな 牛乳飲もうw
312 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:55:01.07 ID:3uzLJz9e.net] そういうのいいから
313 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 21:58:52.30 ID:CEaWdSia.net] だよなw あと、sortはヤツじゃないだろう。もしかして俺?俺でもないぞw
314 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 22:14:47.06 ID:ttxmDenw.net] そういうのいいからw
315 名前:デフォルトの名無しさん mailto:sage [2019/08/21(水) 22:16:45.46 ID:CEaWdSia.net] だよなあww
316 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 01:25:13.11 ID:Oq4Y6cV4.net] bashrc zshrc みたいなところに alias 書くと シェルスクリプトで bash,zsh依存の書くとaliasまで読まれてしまう \Xxx のようなバックスラッシュを全部に付けるのは読みにくい alias 全部切る宣言ないか?
317 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 01:31:08.84 ID:RwKT/aao.net] unalias -a
318 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 01:32:36.38 ID:Oq4Y6cV4.net] thanks
319 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 02:09:53.19 ID:jM8tCXZ0.net] >>312 なんかおかしいぞ aliasはシェルスクリプトには伝搬しない。 現在のシェルにのみ反映する。 例えば、zshでログインして#!/bin/shのシェルスクリプトを起動することを 想像すればなんとなくわかると思うが、別のプロセスになるんだから zshと(zshではないかもしれない)別のプロセスとaliasが共通になるわけがない。 . (source)でカレントプロセスに読み込むならaliasが働くけど それはシェルで使うaliasまで全部初期化するってことになるぞ(それでいいんだろうけど) なんか勘違いか変なことをしてる気がする。
320 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 02:23:33.98 ID:jM8tCXZ0.net] たまたま関連することをやっていたので気づいたが zshって設定なしでも以下のaliasを作ってるな run-help=man which-command=whence これを何に使ってるのか知らないけどunalias -aをするとそれが消えてしまう
321 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 16:38:31.14 ID:maUgHi90.net] あんまりbashと関係ないけど 直前のmacのターミナルのログってどっかに自動保存されてたりするもんなのかね
322 名前:デフォルトの名無しさん [2019/08/22(木) 16:48:16.03 ID:hwVLULCR.net] シェルとは直接関係ない話だが、vimってこんなこともできたんだな。 https://qiita.com/gorilla0513/items/4d1c610f1283bbe46f81
323 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 16:53:37.85 ID:jM8tCXZ0.net] >>318 vscodeでよくない? そこに書いてあるの、全部できるでしょ?
324 名前:デフォルトの名無しさん [2019/08/22(木) 17:04:13.34 ID:hwVLULCR.net] あ、そうなの? 使ったことないから知らなかったよ。
325 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 17:15:22.21 ID:hEbQ4qBk.net] vimでもvscodeでも自分が好きなの使えばええがな
326 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 20:05:03.45 ID:GkmKkRib.net] ターミナルで動かせるメリットは大きい
327 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 22:15:12.37 ID:mlpPC2JR.net] VSCodeは「沢山の機能から自分の欲しいものを選びたい人」向けで Vim含めUnixツールは「少数の機能から自分の欲しいものを作りたい人」向け。 どっちも利点欠点があるけど,俺は後者かなぁ。
328 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 22:28:59.84 ID:UjFyi9ja.net] > Vim含めUnixツールは「少数の機能から自分の欲しいものを作りたい人」向け。 vimを使う人は、vimの機能を作るのが目的の人ってこと? 本末転倒って言葉知ってる?
329 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:07:37.71 ID:mlpPC2JR.net] Unixマニアにとって「本末転倒」は誉め言葉w
330 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:18:19.55 ID:NaJTUw7c.net] Vimは基本的にファイラーとかないから、シェルに移ってコマンド操作しつつ開発するのが普通 なんで、TmuxとかScreenとか併用する ソースコードのフォーマッターだとかリントみたいなのも直接、間接で外部コマンド叩いて使う
331 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:18:34.05 ID:hEbQ4qBk.net] atom派は出てこないんだな
332 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:19:14.46 ID:UjFyi9ja.net] 聞いたことないで? 「unix 本末転倒 誉め言葉 」 検索結果 約 5 件 (0.35 秒)
333 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:20:40.75 ID:UjFyi9ja.net] >>327 atomはMSの息がかかってないから使っていた人が多い。 githubをMSが買収してしまったので、あえてatomを使う理由もなくなった。 vscodeの方が洗練されてるよ。
334 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:31:29.63 ID:xdlhVqlc.net] このスレ、ダメだね
335 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:36:33.00 ID:hEbQ4qBk.net] あー俺はvimmerだからw vscode悪くないけどviキーバインドがイマイチ exコマンド使えんのがストレスで里帰りしたわ
336 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:50:38.35 ID:bojKrn/j.net] テキストなら、vim Ruby, Julia なら、VScode で、 グラフなら、Jupyter Notebook
337 名前:デフォルトの名無しさん mailto:sage [2019/08/22(木) 23:57:59.62 ID:mlpPC2JR.net] 検索結果がすべてだと思ってる御坊ちゃまかわいい
338 名前:デフォルトの名無しさん [2019/08/23(金) 08:47:14.32 ID:Wcc23IuY.net] UNIX哲学こそ正義(GNUのlsやsystemdから目を背けながら)
339 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 10:13:29.68 ID:mT51SH+B.net] gitとかUnixの哲学の正反対だよな
340 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 11:56:56.10 ID:UifFOlyJ.net] だってLinuxの作者が作ったコマンドだからな。
341 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 11:59:37.65 ID:UifFOlyJ.net] ていうかGNU lsもsystemdも「Unix環境で使える」というだけで「Unix哲学に基づいてる」とは標榜してないしねぇ。 ま,俺は別にUnix哲学が絶対的正義とは思ってないけど。 ただ自分で作るツールはUnix哲学とユーザビリティを両立させるべく努力してるけど。
342 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 19:53:15.50 ID:ge92wy5O.net] 単機能のコマンド 標準入出力という共通インターフェース それらを組み合わせて処理する この思想を最初に知った時は感動したな Small is beautiful.
343 名前:デフォルトの名無しさん [2019/08/23(金) 20:11:00.47 ID:Kka1jIND.net] ls
344 名前:デフォルトの名無しさん mailto:sage [2019/08/23(金) 20:24:40.67 ID:GCcQKmFF.net] パイプが強烈なので他の言語のときもできるだけフィルターで機能するように書いている Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば Yyyは任意の言語で大丈夫 シェルスクリプトが背景にあるのは間違いない
345 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 00:25:49.01 ID:AZIGFNIF.net] 何にせよ「ベンダ形式に依存しない」というのが遥か昔に実現できていただけでも評価できる。 今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの それらが無い時代によくも思い付いたなと。
346 名前:デフォルトの名無しさん [2019/08/24(土) 01:34:35.98 ID:dr4oD/Ll.net] パイプとJSON, XMLを比較するとはね。 ヘリコプターと日本語を比べて云々するようなものだ。
347 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 02:19:04.83 ID:AZIGFNIF.net] 例え下手すぎて草 普通に説明したほうがマシだな。
348 名前:デフォルトの名無しさん [2019/08/24(土) 02:52:37.93 ID:T//47Bbt.net] パイプとJSON, XMLを比較するとはね。 チンコとペニシリンを比べて云々するようなものだ。
349 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 03:13:32.51 ID:ctAc+SuL.net] 単にデータフォーマットの話でしょ? 昔は行指向が普通だったからCSVが良く使われたな。 今でも使うけど。Cはcharacterね。 それからXML,JSON,YAML,TOMLと規格が増えていった。 PowerShellはオブジェクトをパイプに流せるんだよな。
350 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 03:48:51.30 ID:GJDIT1Pg.net] 行指向はデータ処理がすぐに行えるって利点があるんだよな XMLは全体を<xml>でくくるという仕様だからデータが全部揃って タグが終了するまで処理できない。大きなデータをストリーミングで 受け取りながら処理していくということに向いていない。 ドキュメント専用と考えたほうがいい。 同じ問題はJSONにもある。ただしJSONLならJSONを使いつつも 行指向になってるからJSONを使いながらも行指向的なデータ処理が行える。
351 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 06:30:43.05 ID:z5CiWEzT.net] 正規表現で引っ掛けるしかないもんな
352 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 06:54:04.43 ID:AZIGFNIF.net] >>345 そうそう。 PowerShellは「パイプ」という概念はそのままに, 流すアイテムをテキスト形式からオブジェクト形式に変更したんだよね。 もっとも,PowerShellはインターネットでググってるだけじゃあまり情報は出てこないし, >>342 みたいに「パイプ」と(パイプに流す)「テキスト形式」を混用してしまうのも無理はないけどね。
353 名前:デフォルトの名無しさん [2019/08/24(土) 13:27:01.13 ID:dr4oD/Ll.net] 混用してるのは>>341 >>340-341 を再掲。 340 デフォルトの名無しさん sage 2019/08/23(金) 20:24:40.67 ID:GCcQKmFF パイプが強烈なので他の言語のときもできるだけフィルターで機能するように書いている Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば Yyyは任意の言語で大丈夫 シェルスクリプトが背景にあるのは間違いない 341 デフォルトの名無しさん sage 2019/08/24(土) 00:25:49.01 ID:AZIGFNIF 何にせよ「ベンダ形式に依存しない」というのが遥か昔に実現できていただけでも評価できる。 今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの それらが無い時代によくも思い付いたなと。
354 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 13:37:16.85 ID:ctAc+SuL.net] >>346 そうだね。 XMLとかマークアップ系はタグ閉じるまで処理できないからストリーミングには向かない。 パーサーに食わせて必要な要素取り出すのが常道だね。
355 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 13:37:41.91 ID:GJDIT1Pg.net] ベンダ形式に依存しない? psコマンドのオプションと出力フォーマットを見てから言え
356 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 13:49:16.53 ID:ctAc+SuL.net] nodejs使いならawkwardというシェルが面白い コマンド出力をオブジェクト配列に変換してforEachで回せる
357 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 18:36:54.54 ID:AZIGFNIF.net] >>351 なんの為のPOSIXだと思ってるんだw
358 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 21:05:39.09 ID:wirrzXpF.net] >>353 つまらない
359 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:30:16.23 ID:AZIGFNIF.net] そりゃおめーを笑わす目的じゃなくて俺が笑う目的で書き込んだんだからなw つまらないのは当然
360 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:33:11.08 ID:GJDIT1Pg.net] https://www.weblio.jp/content/%E3%81%A4%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84 B とりあげるだけの価値がない。取るに足りない。下らない。 「 − ・ないものを買ってしまった」 「 − ・ないうわさ」 〔「つまらないものですが」などの形で,相手に贈る品物を謙遜していう場合にも用いられる。「−・ないものですが,召し上がって下さい」〕
361 名前:デフォルトの名無しさん mailto:sage [2019/08/24(土) 23:50:48.54 ID:vHj0a3Gd.net] 笑ってるんじゃなくて笑われてるだけでは
362 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 00:04:21.62 ID:a7DQLwJd.net] 原理主義者の自称神様には何を言ってもムダ
363 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 00:09:42.96 ID:hoACBN+G.net] sortの話どうなったんだよ?自称神様
364 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 00:40:36.59 ID:2WZBdFxH.net] >>355 自分が笑われる目的で? なんとも自虐的な奴だなw
365 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 02:30:04.13 ID:RhAWwavs.net] 再掲してやろうw > From: [36] デフォルトの名無しさん <sage> > Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG > > 現実世界では私は神なのだ さっさとsortコマンドの話に答えろよw
366 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 03:09:53.26 ID:ssItiA2j.net] しつこい
367 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 03:49:52.04 ID:hoACBN+G.net] >>361 答えたで? >>173 にコード書いてあるやろ?
368 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 04:39:23.92 ID:edoCEBS2.net] 神というだけあってシェルスクリプトに詳しいよな
369 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 04:45:30.28 ID:ve1RKgr6.net] >>361 だっさw
370 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 05:11:51.88 ID:X8LrMnru.net] >>361 なんで、>>75 のレスって書かないの? そしてほんとうの意味を書かないの? >>75 それはその数個上のレスを見ればわかるよ。 「現実世界では俺は優れたプログラマ」(といわれても証拠ないしなーw) とか言ってるや
371 名前:つがいたから、そいつに対するレス。 [] [ここ壊れてます]
372 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 09:58:11.98 ID:ve1RKgr6.net] 粘着うぜーな どーでもいいわ
373 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 11:32:58.43 ID:coCCl2cg.net] 簡単なシェルスクリプトならコピペせず書けるようになったけど他にも言語覚えた方がいいのかしら sedにgrepにawkならかなり世話になってるけどpythonやrubyとは無縁なんだわ シェルはbashに篭ってても困らんしな
374 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 12:52:50.34 ID:RhAWwavs.net] 粘着っていうか自業自得では。自称神さまw
375 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 13:36:51.55 ID:1wFl7XLL.net] いいからシェルスクリプトの話をしてくださいよ じゃまですよ
376 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 13:49:29.02 ID:a7DQLwJd.net] お前がしてもええんやで
377 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 14:04:56.36 ID:ve1RKgr6.net] 俺が自称神さまかよw
378 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 14:11:34.62 ID:ve1RKgr6.net] >>368 他になに書ける?
379 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 15:01:36.04 ID:1wFl7XLL.net] 仕事で使ったことがある言語縛りで言えば、 Ruby、JavaScript、Java、C、C++、Python、C#、Perl、PHP、VB6 これぐらいかなぁ?
380 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 17:42:40.59 ID:7+B4jEzI.net] 聞いてない
381 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 17:51:41.37 ID:ssItiA2j.net] あー当人じゃねーのか
382 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 20:05:36.28 ID:lm+LknRP.net] >>368 perl5は相性が良い ワンライナーで簡潔だし sed awk より強い正規表現が使える
383 名前:デフォルトの名無しさん mailto:sage [2019/08/25(日) 20:06:08.69 ID:coCCl2cg.net] >>373 授業でVB、html、C、java、javascriptを齧っただけですハイ 表計算の方がまだガッツリ書けるわ
384 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 02:33:05.90 ID:zrSc8z1e.net] sedは使うが、awkまでは使いこなせない。 代わりにperlのワンライナーで賄っちゃう。
385 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 04:00:11.44 ID:9u1tekMW.net] PerlはWebサーバーも作れるスクリプト言語だからな。
386 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 04:09:12.67 ID:NWn2YSWg.net] やっぱりシェルスクリプトの利点は Linux/Unix系ならどんな環境でも最初から入ってるという点と 普段プロンプトから入力しているものと同じコマンドで動くという点だと思う そのメリットが、メリットにならないような場面では他の言語がいい
387 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 04:32:57.21 ID:Y1KwJO8H.net] やたら短く書けるのも良い点だと思う
388 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 08:29:42.50 ID:9u1tekMW.net] 短かく書けるプログラミング言語なんて ジョークではなく実用的なのでさえごまんとあるんだから あんまりシェルスクリプトの特筆すべき魅力とは言えんだろう
389 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 09:14:52.23 ID:CMmg/EPX.net] Brainfuck「ふん」
390 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 09:19:30.79 ID:CMmg/EPX.net] >>378 「何をやりたいのか」の方が重要だな それによって言語が決まる
391 名前:デフォルトの名無しさん [2019/08/26(月) 10:12:59.25 ID:easMKtRj.net] ソルバー系はやっていた方がいいと思う。
392 名前:デフォルトの名無しさん [2019/08/26(月) 11:41:59.66 ID:2xzzFsoU.net] ソルバー系って?Prologとかのことですか?
393 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 12:36:08.60 ID:NWn2YSWg.net] 今日のお昼はザルソルバー
394 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 15:31:55.55 ID:7r1lWQhX.net] これは座布団没収
395 名前:デフォルトの名無しさん [2019/08/26(月) 16:47:04.44 ID:4xLfK+jj.net] 審議中(AA略)
396 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 19:43:05.91 ID:lDnuBORI.net] perlは便利っていうが専ら正規表現専用機になってる ほぼsedとして使えるんでつい
397 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 22:19:06.53 ID:bOZvrPaH.net] perlで使える正規表現文字クラスは、 POSIXの正規表現文字クラスより簡単に書けるから、 sedより楽といえば楽だよね。
398 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 22:35:23.01 ID:pJei9Vjv.net] GNU sed だとコンパイルオプションを追加すれば PCRE が 使える(-R オプション)らしいな
399 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 09:47:28.46 ID:jAZb3mMb.net] perlの存在を知る前から\dや\wは使ってたからこれが使えねぇって言われた時は焦ったわ 正規表現入門では当然のようにperl版を使うけど正規表現の種類までは解説しないからな 基本だの拡張だの方言があるって知ったのはvimやgrepで悩んだ時だし
400 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 12:20:19.16 ID:WoMQ7lMm.net] sed は n で次の行に簡単に飛ばせるのが使いやすかった もっとも多くの行送りは読みにくいので過信できないが
401 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 18:42:49.47 ID:AbLHt6c7.net] perlでは[\s\S]でほぼ同じことができるけどね
402 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 05:11:25.57 ID:mFl1zXF1.net] C言語とシェルスクリプトの対比・協調について 「シェルスクリプトは文字列処理がある程度得意で キャラクタによるユーザーインターフェースを作るのに向いている。 一方C言語は↑このような操作は不得手であるが 素早い数値計算やシステムAPI呼出しは向いている。 だからインターフェースはシェルスクリプトで書いて シェルスクリプトで適切に処理した引数(例えばヌル文字を削除したり数値だけにしたり) をC言語をコンパイルしたプログラムに渡すようにすれば 「早くて堅牢、かつ使いやすい」システムができる」 こういうのってどの程度正しい?
403 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 05:39:32.47 ID:K2P0GJ1V.net] 言語なんて色々有るし、C言語と対比しないほうがいいのでは?
404 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 07:27:17.72 ID:Z/4RZqPN.net] >>397 どこから突っ込んでいいか分からないくらいピンぼけな文章
405 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 07:38:14.25 ID:JyOge16s.net] 20年前からタイムスリップしてきたんだ。許してくれ
406 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 08:10:37.66 ID:j4+M+GB0.net] >>397 ちんぼ
407 名前:デフォルトの名無しさん [2019/08/28(水) 10:41:08.33 ID:gV1iThk/.net] 昭和何年からタイムスリップしてきたのか?
408 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:20:21.46 ID:ddpchJVU.net] 可読性が高く、CUI が作りやすい言語は、Ruby。 テキスト処理・コマンド作り・1-liner も得意 ただし、Rubyは遅いから、 ベクトル演算などを速く処理したいなら、C言語で作った、
409 名前:NArray ライブラリを呼び出す その速さは、数値計算専門言語のOctave にも匹敵する! [] [ここ壊れてます]
410 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:31:26.07 ID:Dqewl7QB.net] スクリプトの中で起動速度が一番速いのがシェルスクリプト。次がPerl。 その次はPythonとPHPが同着ぐらい。 Rubyはひときわ遅くて、シェルスクリプトの50倍。Python、PHPの3倍遅い
411 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:52:55.32 ID:Z/4RZqPN.net] TwitterはRuby on Railsで書かれていたがScalaで書き直した それは大量のトラフィックを捌き切れなくなったからだ パフォーマンスの問題を解決しない限りは 死んだと言われても仕方がないな
412 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:15:10.11 ID:wbjCXnts.net] railsってどんぐらいの規模ならいけるの
413 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 14:38:52.61 ID:odAj9D7Z.net] もう10年以上前だけど、Twitterの開発者が何かのインタビューでScala移行した理由としてRubyは自前で型チェックを大量に記述しないといけないから、JavaやScalaみたいに型を指定するほうがいいって気づいたみたいなこと言ってた 海外のプログラミングサイトみたいなやつで、当時少し話題になったけど、探せばまだ見つかるかも
414 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 17:24:45.64 ID:ZwB1MHJ/.net] すごいわかる 動的型付け言語使ってユニットテストで型チェック書くのギャグかよってぐらい馬鹿げてる
415 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:00:01.16 ID:Z/4RZqPN.net] 静的型付け言語の時代になったな Scala,Rust,Swift,TypeScript... パフォーマンスチューニングに労力使いたくないよな
416 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 23:53:16.25 ID:7Kt8r9pr.net] ちょっとperlを覚える気になったけどなんで書きやすいやすくて読みにくいのか分かったわ 記号で変数の使い分ける時点でダメだった 正規表現さえ出来ればいいんだけどPerl6の展望ってどうなんですかね
417 名前:デフォルトの名無しさん [2019/08/28(水) 23:54:49.23 ID:ddpchJVU.net] Rails 6 では、DHH のいるBasecamp 社から、GitHub へ移籍した、Eileen Uchitelle が、 複数データベース接続(read replica)と、ブラウザによるE2E の並列テストを実装した 最近のRailsは、大規模用 Basecamp, GitHub, Shopify 社などが中心。 日本では、Cookpad, マネーフォワード、Ruby開発とか 初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017 この本は、10年以上やってないと、難しすぎて読めない。 だから、サーバー側をNode.js に変えることは難しい 同様に、Go も難しいから、現時点では、Ruby になる!
418 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 00:22:15.02 ID:VY7wxkJm.net] シェルスクリプトと同じぐらいの速度とブログで読んで perl6の処理系が高速化するまでは導入延期予定 速度さえなんとかなれば併用するつもり 新型の正規表現クール --- perl5 の正規表現は (?{perl-code}) (??{perl-code}) などがあるから使えると便利
419 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 00:40:07.63 ID:mztHiQ0L.net] まあ考え方次第なんだけどね $や@を使うことでスカラー変数と配列変数と連想配列変数を厳密に区別できて、違う型の変数に代入できなくするっていう Perl6は更に進んで、静的な型指定をできるようにしようって、2000年代前半の時点で今のPHPとかJSがやろうとして方向に進んでたんだけど
420 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 01:56:31.92 ID:mPTYynKQ.net] Perl 6の正規表現について - Qiita https://qiita.com/sinya8282/items/361f13409a0ca9e3e66c 俺の知ってる正規表現と違う
421 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 09:08:01.33 ID:VG5IecJ5.net] 童貞「俺の知ってる性器表現と違う」
422 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 20:01:19.83 ID:jZJUsq6Z.net] 定期的にruby布教しては信者を得られず帰っていく 逆効果だと思うんだけどなw
423 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 20:57:49.50 ID:VG5IecJ5.net] >>416 末期の日本軍みたいよな。 日本生まれのRubyがその生みの親と同じ末路を辿るとはあまりに悲しい皮肉よ
424 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 00:19:45.85 ID:LpXSw35l.net] 日本軍は現場を知らない奴が出世して参謀とかになってるからおかしいことになった 自分は死ぬ気が無いのに他人に市ねと命令するクズ rubyの人は現場で手を動かしてる分、かなりマシ
425 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 02:13:05.42 ID:/ghu33Nb.net] その肝心要の現場でRubyが動いてないって話をしてんだよなぁ…
426 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 02:39:34.78 ID:1KmU2S17.net] ム版でここまでヘイトを集められるのはある意味ユニークスキル
427 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 05:01:24.34 ID:+D5+4uT9.net] 貴様ら!大日本帝国陸海軍を愚弄するか! Ruby如きの比喩に使うな馬鹿者が!
428 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 05:19:46.60 ID:Nlc2IKSs.net] ここ以外にプログラミングについて活発に議論してるとこってある? QiitaとかTwitterみたいなとこじゃなくて匿名でかしこまってないのがええ
429 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 06:18:12.78 ID:LpXSw35l.net] >>421 今の日本では馬鹿の象徴だよ?帝国陸海軍
430 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 07:57:05.44 ID:yjTPnYwz.net] つーかなんで日本軍が出てくるのか意味不明
431 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 08:10:38.43 ID:jhLEZvWx.net] 大失敗の象徴としてだろけど、Rubyと絡めるのは意味不明 なんであれどういうものであれ批判するヤツ、アンチはことさら大げさに言うのが定番のだろう
432 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 08:49:34.60 ID:1L0XShC3.net] やれやれ、じゃあまた俺がシェルスクリプトのお題でも出してやろうかね?
433 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 08:53:17.88 ID:1L0XShC3.net] じゃあいつもとは趣向を変える Bourne ShellとPOSIXシェルの違いを教えて下さい。
434 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 08:53:40.01 ID:1L0XShC3.net] じゃあいつもとは趣向を変えて と書こうとしたw
435 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 09:03:36.53 ID:jhLEZvWx.net] いつもの承認欲求だけだろ
436 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 09:07:30.27 ID:yjTPnYwz.net] >>422 知恵袋いけ
437 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 09:30:45.39 ID:1L0XShC3.net] Bourne ShellとPOSIXシェルの違い、教えてくださらぬか?
438 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 10:04:47.60 ID:BnHn7wdj.net] 日英両対応のクリップボードへのコピーとペーストの部分どうしてる? cygwin Linux mac などを uname | grep "CYGWIN" > /dev/null && do-something のようなかんじの分岐を copy_to_clipboard paste_from_clipboard で考えている そして コピーのときに cygwin だと > /dev/clipboard linux や mac だと別の何かになる 本当は perlモジュールの Clipboard が OS の差異を吸収してくれる予定だったが 日本語だけはうまく処理してくれないから半分車輪の最発明ののようなことになった
439 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 10:50:41.75 ID:1L0XShC3.net] そんなことやろうと思ったこともないんだが、 どうやってSSH越しにクリップボードに入れられるんだ? それシェルの機能なのか?端末の機能では?
440 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 10:57:15.04 ID:BnHn7wdj.net] SSH 超
441 名前:しじゃなく、ポータブルなコードが欲しかった 環境によってクリップボードのアクセス違うから Xxx | copy_to_clipboad paste_from_clipboard | Yyy のように書けたら楽じゃないか? [] [ここ壊れてます]
442 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 11:18:44.20 ID:yjTPnYwz.net] macはpbpaste/pbcopy linuxはxselかxclip
443 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 11:28:41.14 ID:BnHn7wdj.net] thanks
444 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 11:34:05.64 ID:1L0XShC3.net] コピペしたいとか思わないからなぁ。 コピーはともかくペーストしたいわけでバイナリのペーストもなくはないけど 通常は出力したテキストのペーストでしょ? ファイルに書き出せばいいじゃんって思っちゃう。 まあ別にコピペを否定したいわけじゃなくて、やろうと思わないなって話。
445 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 18:38:47.93 ID:CkOCkFW4.net] Cygwinならclip.exeを呼び出せばいいんじゃない
446 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 19:33:44.50 ID:yjTPnYwz.net] >>438 clip.exeはペーストできない cygwinは/dev/clipboard
447 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:01:36.74 ID:nixiltP4.net] getclipboard使えば
448 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 02:48:40.05 ID:0iGUnrw4.net] クリップボードみたいなGUIに強く依存した(例えば画像や装飾のある文章を切り貼りできる)機能は なかなかOS間・ベンダー間で協調したり標準化したりするのが難しそう。 素人考えだが。
449 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 03:00:42.96 ID:4qIvp+ND.net] httpみたいにMIMEを流用すればいいんじゃないの? 扱えないタイプはぺっすればいいんだし
450 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 08:47:44.75 ID:0iGUnrw4.net] ではその旨を各社にお伝えください。
451 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 08:49:53.41 ID:0iGUnrw4.net] 一個人がアレコレ妄想するぶんには訳ないけど、各々のベンダーが顧客の体験を変えることなく(つまりインターフェース面での過去互換性を最小限にして) 「ぼくのかんがえたさいきょう」のクリップボード仕様を採用してくれるとは到底思えんがね。
452 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:00:30.93 ID:LtUqD47M.net] クリップボードってそのままのデータをやり取りするIPCだろ
453 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:02:39.70 ID:MkewyPY7.net] それはパイプ。クリップボードはクリップボード
454 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:08:50.01 ID:LtUqD47M.net] クリップボードは共有メモリだろパイプじゃない
455 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:13:42.31 ID:MkewyPY7.net] IPCというならだよ。プロセス間通信という感じではない、言うような共有メモリだな どのプロセスが書いたのか知らん知ってるフォーマットのデータを読むだけだし
456 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:18:28.51 ID:LtUqD47M.net] IPCは共有メモリ、セマフォ、パイプなどのプロセス間通信の総称なんだが
457 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:22:09.06 ID:MkewyPY7.net] 共有メモリは広義にはIPCに含まれるだろうが、通信ではないし、クリップボードはプロセス間通信ではないな 共有メモリを使ったプロセス間通信はあるだろうけど、クリップボードがプロセス間通信かと言えば違うだろう。パイプはもろにプロセス間通信という クリップボードってそのままのデータをやり取りする共有メモリだろ でまさしくだし、それでいいんじゃね
458 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:26:20.90 ID:LtUqD47M.net] 共有メモリは広義にも狭義にもプロセス間通信なんだが プロセス間でデータをやり取りするための機構だ
459 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:36:21.83 ID:MkewyPY7.net] プロセス間でデータのやりとりさえできれば、通信するプロセス間の関係性即時性一時性なんて全く関係ないのもプロセス間通信と思えるならそうだろな そもそもプロセス間通信をするために用意したのが共有メモリだと思うよ。共有メモリを使うから=プロセス間通信ではないだろうとは俺は思うけど。ファイルシステムもIPCになる感じになるな、そのままのデータをやり取りするなら
460 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:39:19.82 ID:iNpyZmkw.net] つーかどれとどれのプロセスの通信なんだよw
461 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:40:17.30 ID:iNpyZmkw.net] コピペは重要な機能なのに、標準化されなかったから vimからemacsへのコピペすら出来ない
462 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:40:59.50 ID:iNpyZmkw.net] UNIX思想の限界の一つだよな
463 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:43:50.78 ID:LtUqD47M.net] IPCの意味調べてこいよ オレオレ定義を語られても困るんだけど
464 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:48:52.24 ID:MkewyPY7.net] 自分でも共有メモリと言っているのに、IPCに拘る方がわからんわ クリップボードが
465 名前:IPCと言われると違和感しかないな。ファイルシステムもになるからw言っている意味がわからんのならIPCとはなんのためになんぞやを調べた方がいいよ [] [ここ壊れてます]
466 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:51:06.96 ID:LtUqD47M.net] だからおまえが調べてこいよ わけわからんやつだな
467 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:56:35.05 ID:ndYyEVRN.net] 調べてきたぞ。そのうえで意見は何も変わらん。 なにか言いたいなら、自分の口で言いたまえ つーか俺が不利になることを俺が調べると思ってんの?w
468 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:57:20.39 ID:LtUqD47M.net] じゃあ頭悪いんだから無理するなよ
469 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:57:22.41 ID:MkewyPY7.net] 言われるまでもなく知ってるよというのを匂わせていたんだけどww プロセスがどのプロセスが(読むか読まれるか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む 対象が共有メモリだからIPCとでも言っているようだけど?だからIPCとはなんのためになんぞやを調べた方がいいと言っているのだが
470 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:58:45.11 ID:wH7D17fo.net] 共有メモリに関数(プロシージャー)をおいて 呼び出すのがI(インターネット)P(プロシージャ)C(コール)なわけだが?
471 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:59:35.20 ID:MkewyPY7.net] ちょっと訂正 プロセスが(どのプロセスが読むか読まれんか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む クリップボードってそのままのデータをやり取りする共有メモリだろ でいいだろうに、なんでIPCのこだわっているのかさっぱりわからんな
472 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:59:51.95 ID:gu7Dz/47.net] 馬鹿二匹 馬鹿1「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」 馬鹿2「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」
473 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 14:00:12.26 ID:LtUqD47M.net] お大事に
474 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 14:02:37.03 ID:ITKcc2Rb.net] 割り込んで良い? Bourne ShellとPOSIXシェルの違いを教えて下さい。
475 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 14:57:30.64 ID:Zp9ErCWA.net] うーーんメーカー規格と標準規格で中身はおんなじとか
476 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:05:45.40 ID:0iGUnrw4.net] まーーーた始まった。 しかも今度はシェルの話題ですらないw
477 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:11:29.97 ID:0iGUnrw4.net] >>466 知らんけど いわゆるBourneシェルはUnix V7あたりの「古き良き」シェルを指す? でPOSIXはそのBシェルと前後して登場していた種々のシェルの微妙な非互換性を埋めるべく Unix V7が全盛だった頃よりもっと後になって登場した「実装のない」シェル? だからPOSIXシェルというのは正確にはPOSIX準拠シェルで POSIX準拠シェルにはBシェルで使えない機能もある。具体的には set -o <機能の長い名称> とかかな?。 Bシェルが動いてる環境にPOSIXに準じた書き方をした筈の(つまり「現時点での」最大限の互換性がある筈の) シェルを持っていっても,動かない場合がある。 POSIXはBシェルを大いに参考にはしたかも知れないが,Bシェルでも動くようにとか, ましてBシェルと過去互換であるようになんてことは念頭に置いてない。 どうっすか先生。
478 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:16:19.89 ID:a1oQmbic.net] >>467 >>469 あー、なりたちとかそういうのじゃなくて 何が出来て何が出来ないとか機能的な話です。
479 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:30:41.04 ID:4qIvp+ND.net] >>470 POSIXの仕様書は読んだの?
480 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:57:20.87 ID:0iGUnrw4.net] >>470 つ pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html
481 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 16:03:38.88 ID:3i1dPJsj.net] Bourne Shellの仕様がないと比べようがないんだが?
482 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 16:40:24.77 ID:0iGUnrw4.net] 「ないんだが?」←草
483 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 16:50:51.67 ID:4qIvp+ND.net] >>473 ソース公開されてるから自分で読みなよ 何甘えてんだよ
484 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 17:01:32.42 ID:3i1dPJsj.net] やっぱりだれもBourne Shellの仕様を知らないのかな?
485 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 18:16:09.72 ID:0iGUnrw4.net] だって「いつの」「どのOSに搭載された」「どんなベンダーが配布していた」Bシェルか一切指定されてないからね。 候補は幾つかあるものの出しようがない。
486 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 18:19:00.41 ID:0iGUnrw4.net] まさかと思うがBourne Shellが絶対不可侵,永久不滅の存在だなんて思ってないよな。 円周率じゃないんだから,単に「Bourne Shellの仕様」と言っただけで特定できる訳がない。 「Windows XPの仕様」←これがどれだけ曖昧な言明か,ちょっとでも真面目に プログラミングとその文書化に取り組んだなら分かる筈。
487 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 18:20:26.43 ID:0iGUnrw4.net] 「Solaris 10の仕様」「Unix V7の仕様」←「Windowsのことなんてシラネーシ」みたいな反論を先に封じておくために Windowsでない例を挙げておこう。
488 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 00:08:11.60 ID:1i1y7fC5.net] POSIXって右と左で中身がガバガバだから作られた最低限の共通仕様じゃないのか 無人島じゃ家電は役立たずでもアーミーナイフならどこでも使える的な
489 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 00:12:22.70 ID:7+2OKNJu.net] >>478 言い訳してるようにしか見えんが、 特定できないというのなら、一例としてお前のよく知る ○○と仮定して答えりゃいいやん
490 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 00:15:35.40 ID:7+2OKNJu.net] >>480 POSIX準拠シェルの説明としては間違ってないが、 Bourne Shellとの比較であれば、POSIX準拠シェルの方が機能が多い POSIX準拠シェルを「最低限の共通仕様」というのなら Bourne Shellは最低限の仕様すら満たしてない使えない実装
491 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 00:36:05.17 ID:tx4fDw07.net] 最低限の共通仕様と言ってるだろ、最低限の仕様じゃないよ
492 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 00:37:19.00 ID:5y1tL0M+.net] >>478 複数の機能の複合体のWindowsXPと、もう誰もいじってないBourne Shellを 同列に並べるあたり、必死に言い訳をしてるようにしか見えんなあ
493 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 01:30:55.26 ID:7+2OKNJu.net] >>483 だからBourne Shellは「最低限の共通仕様」を 満たしてないんだってば
494 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 02:19:47.47 ID:tx4fDw07.net] Bourne ShellをベースにBourne Shellの機能を満たすように作るだろ、最低限でも Bourne Shellの機能に飽き足らず拡張した部分の最低限の共通仕様だろ 最低限の仕様といえばBourne Shellの仕様だろ
495 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 02:27:49.82 ID:V0W1RnmC.net] Bourne ShellはPOSIX準拠じゃないから「最低限の共通仕様」を満たしてないんだってば
496 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 02:31:19.82 ID:tx4fDw07.net] POSIXが出る前POSIXを作るときの話だよ。Bourne ShellはPOSIX準拠じゃないってズレすぎ Bourne Shellに機能拡張した部分の最低限の共通仕様だろって言ってるだろに そもそもだな、つっこみどころが違う、「(右と左で中身がガバガバだから作られた)共通仕様」なのか?と思うけどw
497 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 02:51:26.82 ID:V0W1RnmC.net] 「最低限の共通仕様」ってPOSIXのことじゃないの?
498 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:07:24.67 ID:tx4fDw07.net] Bourne Shellに機能拡張した部分の最低限の共通仕様=POSIX 「Bourne Shellに」「機能拡張した部分の」「最低限の共通仕様」だって言ってるだろに Bourne Shellありき どこのぞのバージョンが、それに a b c etc... な機能を追加 どこのぞのバージョンが、それに b c d etc... な機能を追加 Bourne Shell + b + c = POSIX という意味だろう>>480 のいう最低限の共通仕様は
499 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:21:19.69 ID:V0W1RnmC.net] POSIXはkshをベースに作った仕様だけどね
500 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:22:16.21 ID:tx4fDw07.net] >>487 なんて変なこと言い出さずに、それを言えよw
501 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:28:52.19 ID:V0W1RnmC.net] だからBourne ShellはPOSIX準拠じゃないよね でいいんでしょ
502 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:31:36.55 ID:tx4fDw07.net] なにをそんなに食い下がっているのか意味わからん。なんの意味があるのそれに? (そんなこと言い出すのはアホか?としか思えんぞw、常識的にPOSIXなんて存在する前のにPOSIX準拠もなにもないだろう)
503 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:33:35.57 ID:V0W1RnmC.net] なんでPOSIXが存在する前の話になってるのか分からんけどねw
504 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:35:57.77 ID:tx4fDw07.net] 「POSIXって」「右と左で中身がガバガバ」「だから」「[作られた]」 って書いてあるだろう わざとなのかわざとじゃないのかわからんが、人のレスを読む努力はした方がいいぞ そうしたら変なこと言い出さずに変なこと言ったことを誤魔化すような醜態はさらさないだろうw
505 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:39:37.50 ID:V0W1RnmC.net] >>490 で言ったこと訂正しとけよw
506 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 03:40:28.13 ID:tx4fDw07.net] そのレスは読めないなw 俺のレスが読めなくてのとしか思えん
507 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:22:29.76 ID:5y1tL0M+.net] ごめんなさいって言えば良いのになんで突っ張るかねぇ
508 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:34:43.52 ID:YaEsaVCE.net] >>488 > Bourne Shellに機能拡張した部分の最低限の共通仕様 それ日本語になってないだろ?w 自分が言った言葉を無理やり辻褄が合う(?)ように改変したから そういう意味不明な言葉になってるんだぞ
509 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:36:27.29 ID:YaEsaVCE.net] >>491 > POSIXはkshをベースに作った仕様だけどね Bourne Shellではなくkshをベースに作られたんだな
510 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:40:50.68 ID:tx4fDw07.net] ん? Bourne Shellに機能拡張した部分の最低限の共通仕様 Bourne Shellありき どこのぞのバージョンが、それに a b c etc... な機能を追加 どこのぞのバージョンが、それに b c d etc... な機能を追加 Bourne Shell + b + c = POSIX という意味だろう>>480 のいう最低限の共通仕様は どう、日本語になってないの?
511 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:41:03.98 ID:YaEsaVCE.net] >>477 > 候補は幾つかあるものの出しようがない。 候補が有るなら出せるのでは?w 後方がいくつか有るというのなら、その候補を言ってみなよ。 その中で最後に作られたもの(or 一番機能が多いと思われるもの)に すればいいだけだからさ
512 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:42:29.94 ID:YaEsaVCE.net] >>502 Bourne Shellに機能拡張した「部分」 の部分とはどこの部分? その「部分」の「最低限の」「共通仕様」がPOSIXなんでしょ?
513 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:43:18.76 ID:tx4fDw07.net] >>502 に書いてあるけど?
514 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:44:02.38 ID:YaEsaVCE.net] >>505 書いてないから言ってる 「部分」=○○ という形で言えばいいだけ はいどうぞ
515 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:44:51.13 ID:tx4fDw07.net] b と c だよ
516 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:48:27.13 ID:YaEsaVCE.net] b と c があって、その部分の 最低限の共通仕様がPOSIXなわけね
517 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:49:02.25 ID:tx4fDw07.net] そう最初から言ってる、書いてるんだけどなあww
518 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:49:14.02 ID:YaEsaVCE.net] つまり、Bourne ShellはPOSIXには含まれないと
519 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:50:02.57 ID:tx4fDw07.net] ああ、違う、違う読み方してんのか?? どこのぞのバージョンが、それに a b c etc... な機能を追加 どこのぞのバージョンが、それに b c d etc... な機能を追加 なんぞの共通の最低限の共通仕様だからね
520 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:50:42.66 ID:tx4fDw07.net] >>510 ん? Bourne Shell + b + c = POSIX って書いてるんだけど?
521 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:51:10.99 ID:YaEsaVCE.net] > なんぞの共通の最低限の共通仕様だからね お前「部分」って言ったよね? Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様
522 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:52:24.67 ID:tx4fDw07.net] それに a b c etc... な機能を追加 a b c etc... なんぞは部分だわな
523 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:52:27.35 ID:YaEsaVCE.net] > b と c だよ 言質とりましたーw Bourne Shellに機能拡張した部分(b+c) (b+c)の最低限の共通仕様がPOSIXだって言いましたー
524 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:53:50.39 ID:tx4fDw07.net] なにを喜んでいるのか意味わからんな。どこになんの言質??
525 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:54:23.93 ID:YaEsaVCE.net] >>515 をみろ
526 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:55:11.18 ID:tx4fDw07.net] だから、なんの言質かと聞いているんだが
527 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:56:08.38 ID:YaEsaVCE.net] Bourne Shellに機能拡張した「部分」が(b+c)だって言質とりましたーw
528 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:57:06.97 ID:YaEsaVCE.net] /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
529 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 04:59:06.93 ID:tx4fDw07.net] まさか、POSIXとは (b+c)のことだって言ったと言っているわけじゃないだろうね? Bourne Shell + b + c = POSIX って書いてあるだろう。POSIXとはこれのことだと言っているのだろうとは俺は言っているけど。それも俺の主張ではなくて>>840 の言いたいことはだがなw
530 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:00:27.58 ID:JXg8T9pY.net] キチガイ VS キチガイ ファイ!
531 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:00:57.18 ID:tx4fDw07.net] >>521 × >>840 の言いたいことは ○ >>480 の言いたいことは いい加減長いw
532 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:02:27.14 ID:YaEsaVCE.net] >>521 だから 「Bourne Shelに」に「機能拡張した部分(b+c)」の「最低限の共通仕様」=POSIXだろ
533 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:03:43.36 ID:JXg8T9pY.net] >>523 長くてもいいよ。 見てて面白いからもっとやれ。 どうせこんな場末のスレなんてチガイ同士の喧嘩かスクリプトくらいでしか活気付かないんだから。
534 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:04:01.75 ID:tx4fDw07.net] >>524 それでいいよ(?)で?
535 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:05:08.99 ID:YaEsaVCE.net] >>526 で、って最初から言ってる。 日本語になってないと。
536 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:05:14.28 ID:tx4fDw07.net] >>525 すぐに喧嘩とか思っちゃうのねw
537 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:05:42.43 ID:tx4fDw07.net] >>527 だから、どうなってないのかと聞いているんだが?
538 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:11:25.25 ID:YaEsaVCE.net] >>529 Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様 がPOSIX ↑日本語になっていない ↓正しい日本語 Bourne Shellを機能拡張したシェルの共通仕様がPOSIX まあ↑は日本語としては正しいが、言ってることは間違いだけどな 正解 Bourne Shellを機能拡張したkshのサブセットがPOSIX
539 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:17:42.82 ID:tx4fDw07.net] その俺のからはその添削後の意味は取れないのね?ふーん まあ、それならすまんかった。(なんかそうとは思えんけどw)
540 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:18:51.37 ID:YaEsaVCE.net] まさにこれw 499 名前:デフォルトの名無しさん[sage] 投稿日:2019/09/01(日) 04:22:29.76 ID:5y1tL0M+ [2/2] ごめんなさいって言えば良いのになんで突っ張るかねぇ
541 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:19:56.80 ID:tx4fDw07.net] いや、言ってるけど そこまで読めないのか?というのは拭えないというだけで
542 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:26:24.29 ID:YaEsaVCE.net] で、話を戻そうか? >>477 > 候補は幾つかあるものの出しようがない。 候補が有るなら出せるのでは?w 後方がいくつか有るというのなら、その候補を言ってみなよ。 その中で最後に作られたもの(or 一番機能が多いと思われるもの)に すればいいだけだからさ
543 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 05:31:12.93 ID:YaEsaVCE.net] 忘れているかもしれないけど、 Bourne ShellとPOSIXシェルの機能の違いはなにか? という話です。
544 名前:デフォルトの名無しさん [2019/09/01(日) 13:23:16.11 ID:fPTBNnye.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだねw
545 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 13:28:25.22 ID:hBg0Iyqv.net] まーた始まった
546 名前:デフォルトの名無しさん [2019/09/01(日) 13:38:39.47 ID:sO2LPoJE.net] 昨日神保町の本屋でこんな本みつけた。ペラペラの薄い本で妙に安い(300円+税)。内容は初心者向け。 シェルスクリプト入門の入門 ankokudan.org/d/d.htm?detail230-detailread-m.html
547 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 14:14:10.44 ID:IrmDadb6.net] どうでもよさそうなものださなくていいよ
548 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 18:13:48.55 ID:Zrnas7uJ.net] UNIXの分裂とかも、こんな不毛な言い争いから始まったんだよなw
549 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 18:27:20.62 ID:5y1tL0M+.net] AT&Tの解体が原因じゃないの?
550 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 19:11:34.33 ID:ugxLNVG7.net] う、うん…
551 名前:デフォルトの名無しさん mailto:sage [2019/09/01(日) 23:36:59.29 ID:V0W1RnmC.net] 自分の間違いを素直に認められないやつは厄介だなw
552 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 02:57:56.84 ID:qpVgNjbx.net] キチガイ
553 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 05:42:07.68 ID:moJkj9e4.net] こんな場末の記事でしか偉ぶれないなんて,かわいそう。
554 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 06:47:31.22 ID:mejwNGsW.net] こんな場末のスレで煽りしか入れられないなんて,かわいそう。
555 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 08:23:13.45 ID:KSSQVEnP.net] >>546 自分を可哀想だと言い始めたら、人生終わりだよ
556 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 08:29:03.25 ID:mejwNGsW.net] >>547 >>546
557 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 09:13:03.84 ID:moJkj9e4.net] もしかして >>546 って >>545 に「言い返した」つもりなのかね。 ヤベーなw
558 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 09:29:50.35 ID:mejwNGsW.net] >>549 >>546
559 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 10:24:24.46 ID:PyPzRv4a.net] Bourne ShellとPOSIXシェルの機能の違いはなにか? という話はどうなりましたか?
560 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 11:36:53.96 ID:PWSlwBbe.net] ※ 忘却の彼方に流れていきました
561 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 18:30:44.36 ID:1C5pGEJg.net] https://tangentsoft.com/misc/unix-shells.svg POSIX shellと比較するならkshの方が適切な希ガス
562 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 19:04:17.99 ID:PyPzRv4a.net] Bourne ShellとkshだったらBourne Shellの方が有名だろ? 何を持って適切と言ってるのか知らんけど
563 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 22:23:56.37 ID:8MncpZHQ.net] 逆に言えば有名だから何なんだという話でもあるなw
564 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 23:36:30.01 ID:PyPzRv4a.net] 有名だから聞きたいんだよw UbuntuとDebianの違いはよく書きれても UbuntuとLinuxfxの違いなんて気にしないでしょ? 言われて初めて、へー、そんなのあったんだーレベルだから
565 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 23:36:49.17 ID:PyPzRv4a.net] UbuntuとDebianの違いはよく聞かれても
566 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 23:45:33.27 ID:KSSQVEnP.net] >>553 $ bash -c 'unset a b;echo 10|read a;let b=a+10;echo $b' 10 $ ksh -c 'unset a b;echo 10|read a;let b=a+10;echo $b' 20 $ どっちがPOSIX的に正しいの?
567 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 23:46:05.05 ID:KSSQVEnP.net] >>558 letは正しくないからそこは放置でw
568 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 00:05:50.68 ID:zMaEK75z.net] ほぅ… $ bash -c 'unset a b;echo 10| { read a;let b=a+10;echo $b; }' 20
569 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 00:13:50.73 ID:1Annr1ic.net] >>560 へーそんな挙動するのか。
570 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 00:31:57.81 ID:KovswbEV.net] パイプの右側がサブシェルになるのかどうかはPOSIXで規定されてない どちらも間違いじゃないが、bashの動きのほうが多い
571 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 01:10:57.53 ID:estwIa98.net] bash --posixでもうっかり配列は動く悲しみ
572 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 01:31:09.86 ID:WJPOiKcg.net] >>562 多いとは? POSIXshellはksh派生なのに動きが違うのがなんとも
573 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 02:41:22.59 ID:KovswbEV.net] >>564 bash, dash, mksh, yash, posh が同じ動き ksh, zsh が同じ動き
574 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 02:44:16.76 ID:KovswbEV.net] >>564 POSIXシェルという実装は存在しない だからkshの動きはPOSIXシェルの仕様通りと言える bashはPOSIXシェルそのものではない。
575 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 02:56:06.66 ID:1Annr1ic.net] >>566 「kshの動きはPOSIXシェルの仕様通り」 正確には 「kshの動きをPOSIXがシェルの仕様として採用した」 だな。
576 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 13:39:17.34 ID:SNzApyUr.net] これマジ?
577 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 17:49:01.73 ID:U7UFDLpo.net] >>566 ,567のこと?>>567 の下は上と同じこと言っているとしか見えないが だったらマジじゃないだろう
578 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 12:29:34.80 ID:0GNwCqDq.net] POSIXは他の環境でも動く共通規約 GNUのソフトは高機能だがそれ自体が方言ということ 組み込みは機能を削ぎ落とすため色々知恵が必要 一般人はbashだけ使ってればおk こんな認識で問題ない?
579 名前:デフォルトの名無しさん [2019/09/11(水) 12:40:30.30 ID:3HQIKx2V.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
580 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 12:52:40.14 ID:IEmfVi5w.net] >>570 Linuxユーザーという前提? POSIXに準拠していれば、多くの環境で動かすことが出来る GNUはPOSIX準拠+高機能な拡張(標準語+方言) GNU以外でも多かれ少なかれ拡張されてる 組み込みも完璧ではないが、多くの場合POSIX準拠に近い 一般人はWindowsだけ使ってればおk dashで動かす必要があるなら、bashの拡張は使えない
581 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 12:53:13.99 ID:IEmfVi5w.net] >>571 /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
582 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 13:53:14.59 ID:/GwFJIf/.net] winでwsl使えるようになったし、bashが正義じゃないの? macは知らないw
583 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 13:59:37.76 ID:ujkZonF+.net] だからその、WSLのUbuntuの /bin/sh は dash だっていってんの
584 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 14:06:58.77 ID:Alp4BtBi.net] aptitude install bash #!/usr/bin/bash
585 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 14:18:05.48 ID:0GNwCqDq.net] >>572 Mint使ってるけどdashってどんな時に必要なの 軽さが求められるってラズパイやドローン辺り? MacはBSDだからLinuxのコマンドオプションが使えないってのは面倒そうね だからってそっちにcoreutils入れるのもアレだが
586 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 14:38:42.01 ID:ujkZonF+.net] >>577 そんなもん、こんなの重いbash使うまでもないですよねってときに使うに決まってるじゃん /bin/bzdiff:#!/bin/sh /bin/bzexe:#!/bin/sh /bin/bzgrep:#!/bin/sh /bin/bzmore:#!/bin/sh /bin/egrep:#!/bin/sh /bin/fgrep:#!/bin/sh /bin/fsck.btrfs:#!/bin/sh -f /bin/gunzip:#!/bin/sh /bin/gzexe:#!/bin/sh /bin/gzexe:#!/bin/sh /bin/lesspipe:#!/bin/sh /bin/setupcon:#!/bin/sh /bin/uncompress:#!/bin/sh /bin/unicode_start:#!/bin/sh /bin/zcat:#!/bin/sh /bin/zcmp:#!/bin/sh /bin/zdiff:#!/bin/sh /bin/zegrep:#!/bin/sh /bin/zfgrep:#!/bin/sh /bin/zforce:#!/bin/sh /bin/zgrep:#!/bin/sh /bin/zless:#!/bin/sh /bin/zmore:#!/bin/sh /bin/znew:#!/bin/sh
587 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 15:20:07.21 ID:wb8QVF41.net] bashが使えない環境のほうが特殊だよなぁ 素直に #!/bin/bash で書いときゃいいんじゃね ところで、#!/usr/bin/env bash って使えるのか?
588 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 15:55:05.69 ID:ujkZonF+.net] 特殊だろうがbashが使えない環境は現実として存在してるわけで
589 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 20:12:45.01 ID:sXUhuJjU.net] またひとりで必死だな
590 名前:デフォルトの名無しさん mailto:sage [2019/09/11(水) 22:51:13.32 ID:zVcNXGaB.net] またお前か
591 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 00:11:11.54 ID:GvsY5hZk.net] 普通にPCでLinux(とWindows)使ってるだけならbashだけでなんにも困らないよなあ これはLinuxに限らずちゃんとしたUnixを使う場合もそうだけど、客先で使ったり客に何かを提供する場合は気を遣うべきだが 自分で自由にできるAIXやHP-UXならbashインストールすりゃいいんだし
592 名前:デフォルトの名無しさん [2019/09/12(木) 01:59:12.99 ID:Uy9QyXie.net] つまりPOSIXなんてピエロだとwww
593 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 02:11:14.84 ID:iqiqB/tU.net] オープンソース開発者「そら、お前がお前のためだけのツール作るなら、それでいいだろな。責任もなんにもないし」
594 名前:デフォルトの名無しさん [2019/09/12(木) 02:18:54.66 ID:xw2iu/gH.net] MITとかの主要なOSSライセンス読んでみろ。 ソフトの使用でどんな損害被っても作者は責任持ちません。 それに同意しないと使えませんて書いてあるだろ。 オープンソース開発者こそ責任もなんもない。そのためのライセンスだから当たり前だが。 何を勘違いしてんのかねこいつはw
595 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 07:53:28.61 ID:umd/llTn.net] >>574 macOSもzshがデフォだから実質Bashの機能が使える。
596 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 07:54:28.26 ID:YLSbOzHc.net] JavaだとJREまるごとついてくるソフトも珍しくなかったし、 今だとコンテナでlibcからなにまで添付。 ストレージの容量に気を使わなくてよくなってるんだから時代に合わせて 開発するのが良いんじゃないかね。
597 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 07:55:04.48 ID:umd/llTn.net] まーーーたいつもの自称神のPOSIXキチが暴れてんのか。
598 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 09:05:58.55 ID:iqiqB/tU.net] >>587 問題はシバンをどうするかだよ。 zshを使うには#!/usr/bin/zshとしないといけない bashなら#!/bin/bashだ だがzshとbashをうまく使い分けてくれるわけじゃない シバンは#!/bin/shとするしかない そうするとUbuntuではdashになる [] [ここ壊れてます]
600 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 10:57:28.70 ID:d/tSjguy.net] #!/usr/bin/zsh にすればいいだろう、そういう話でもあるのに特定のヤツだけがなぜか拘っているだけだろに そいつもたいしたもん作ってないくせに
601 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:04:35.83 ID:6grXRSs+.net] だけどそうするとzshが必須になるって話でしょ
602 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:12:45.55 ID:d/tSjguy.net] >>587 はzshがbashの代替になるという話じゃないの bashとの違いはあるだろうけど、些細なちょっと直せばいいというのを含んでの そもそも一般人は=特定の環境で動けばいいだけの人はの話でしょう
603 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:23:02.84 ID:6grXRSs+.net] 「一般人」をオレオレ定義して語るのはやめましょう 複数の環境を使う一般人もいるわけです
604 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:52:17.18 ID:7qK8Dq0y.net] zshスクリプト書くならzsh必須 bashスクリプト書くならbash必須 当たり前の話だ
605 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 11:55:43.46 ID:Xwf8i9TU.net] あたり前田のcracker
606 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:04:51.42 ID:d/tSjguy.net] >>594 大多数でもなんでもいいけど、そういう意味だろう。それでも読めなさそうだが
607 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:40:22.35 ID:6grXRSs+.net] 一般人を勝手に定義すんなって言ってるのに、 そういう意味だろとか、わかってなさすぎw 一般人にそういう意味はありません
608 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:43:04.42 ID:d/tSjguy.net] 話の通じないこだわりぶりは、いつものか
609 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:45:16.02 ID:6grXRSs+.net] >>599 お前が「いつもの」だって言うのはわかってるぞ
610 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:45:43.48 ID:6grXRSs+.net] /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
611 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:47:01.39 ID:d/tSjguy.net] どういつものなんだか
612 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:54:03.95 ID:6grXRSs+.net] シェルスクリプトの話をしないやつだよ
613 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 12:56:58.88 ID:d/tSjguy.net] 自分でできないのにww ないすボケと言って欲しいのかw
614 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 13:01:35.95 ID:6grXRSs+.net] いいからシェルスクリプトの話をしろよ。まったく
615 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 13:04:19.98 ID:d/tSjguy.net] >>601 から全て自分自身に対して言っているのね?なるほど納得
616 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 17:43:49.36 ID:umd/llTn.net] ここまで言われてなおシェルスクリプトと無関係な煽りを書き込めるって相当だぞ
617 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 18:46:23.43 ID:i3mmqxJn.net] exec 2> >(tee -a stderr.log >&2) 後ろの>&2ってどんな意味なんです?
618 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 18:46:26.98 ID:Um0WsLAR.net] bashが必要になるようなものはそもそも選択する言語が間違ってると思う
619 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 19:42:51.04 ID:WUiTiHRA.net] >>608 stderrのをだから(サブシェル内の)stderrに出力、それが無ければstdoutに出力 あんまそれほど意味はなさげのような気がするけど
620 名前:デフォルトの名無しさん mailto:sage [2019/09/12(木) 20:41:45.14 ID:WUiTiHRA.net] インタラクティブ、もしくは、それ以下のスクリプトでサブシェルのstderrの先を変えようにも変えようがないし、やるならその前でしかなと、意味はなさげと思ったが、 それが入っているスクリプト起動時にリダイレクトする場合には意味があるか。(コンソールへの)stderrいらないから捨てるとか hoge.sh #!/bin/bash exec 2> >(tee -a stderr.log >&2) ... ./hoge.sh 2> /dev/null >&2があるので、(コンソールへの)stderrはうまく捨てれる
621 名前:デフォルトの名無しさん mailto:sage [2019/09/13(金) 17:57:13.42 ID:DBJTu1IU.net] bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する https://sechiro.haten blog.com/entry/2013/08/15/bash%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%BD%AE%E6%8F%9B%E6%A9%9F%E8%83%BD%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%82%B7%E3%82%A7%E3%83%AB%E4%BD%9C%E6%A5%AD%E3%82%84%E3%82%B9 そのスクリプトの出処はここだな 出力のプロレス置換ってこう使うのか 入力のプロセス置換はよく使ってるけどそっちはどうもな
622 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 14:53:58.72 ID:pQ8OW4Ak.net] プロレス乙
623 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 15:54:17.46 ID:tdzCu94K.net] プロミスの間違い
624 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 17:27:42.22 ID:niUt0I6q.net] サラ金市ね
625 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 16:58:31.20 ID:BxQhi0/5.net] grepは自身で上書きすると中身空になるけど回避方法ある?要はspongeなんだけども
626 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:06:24.59 ID:b8Gz5Yn9.net] data=$(grep 〜); echo "$data" > 〜
627 名前:デフォルトの名無しさん [2019/09/15(日) 17:10:14.49 ID:riyG3w3b.net] >>612 こんなのが出たので見るのを止めた。 この接続ではプライバシーが保護されません sechiro.hatenblog.com では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。詳細 NET::ERR_CERT_COMMON_NAME_INVALID
628 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:13:13.56 ID:b8Gz5Yn9.net] >>618 お前のパソコンなんかおかしくなってるぞw
629 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:15:19.48 ID:b8Gz5Yn9.net] ハッテンブログじゃなくてはてなブログだな
630 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:18:49.85 ID:LMFjfaUx.net] hattenblogこわい
631 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:28:57.92 ID:4TgO8+RX.net] 5ch では、はてなブログのURL を貼ってはいけない! 書き込み禁止画面が出ずに、いきなり吸い込まれて、 アクセス禁止になるようにしてあるから、超危険! 同様に、twitter の長いURL にも、吸い込まれるものがあるらしい そこだけ、全角などに変換した方がよい。 hatenblog
632 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:32:44.42 ID:4TgO8+RX.net] >>612 のURL は、証明書エラー! HTTPS の証明書が切れてる!
633 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:37:11.76 ID:4TgO8+RX.net] >>612 hatenblog そもそも、上ははてなブログじゃない!w a が無い はてなブログは、 hatenablog
634 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:40:16.44 ID:4TgO8+RX.net] >>612 hatenblog に、a を追加したら、ちゃんと見れた! はてなブログは、 hatenablog
635 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 17:40:54.01 ID:h836vV7+.net] https://sechiro.hatenablog.com/entry/2013/08/15/bash%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%BD%AE%E6%8F%9B%E6%A9%9F%E8%83%BD%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%82%B7%E3%82%A7%E3%83%AB%E4%BD%9C%E6%A5%AD%E3%82%84%E3%82%B9
636 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 18:39:06.79 ID:QquDNTIJ.net] https://sechiro.%68atenablog.com/entry/2013/08/15/bash%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E7%BD%AE%E6%8F%9B%E6%A9%9F%E8%83%BD%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%82%B7%E3%82%A7%E3%83%AB%E4%BD%9C%E6%A5%AD%E3%82%84%E3%82%B9
637 名前:デフォルトの名無しさん [2019/09/15(日) 20:14:01.28 ID:riyG3w3b.net] >>619 スマホのChromeなんだけどね。おかしいのかね?よくわからんが。
638 名前:デフォルトの名無しさん [2019/09/15(日) 20:17:20.74 ID:riyG3w3b.net] >>621 あ、そういうことか。 たしかに無事開いてしまったら何か違う世界を見てしまいそうで怖いアドレスだなw
639 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 19:53:43.50 ID:vTAkg/qq.net] 16進数(最大二桁 0xFF)から8進数に変換したいんですが bcを使う以外にsedなどを使った方法とかありますかね…? $ printf 'obase=8;ibase=16;%s\n' 'FA' | bc もしあれば,bcは16進数のアルファベットが大文字じゃないといけないし, POSIX標準とはいえUbuntuとかには既定で導入されてないしで, あまり使いたいくないんです(わがままですいません)
640 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 20:12:04.01 ID:Zn9wpmWA.net] printf '%o\n' 0xfa
641 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 21:17:46.43 ID:U9mfWlHU.net] 8進数にパーミッション以外の使いみちなんてあったのか…
642 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 23:39:17.58 ID:LCUbae2V.net] >>630 hex=fa oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) )) # oct=$((0x$hex >> 6))$((0x$hex >> 3 & 0x7))$((0x$hex & 0x7)) 3桁固定版 echo "$oct" 出力が必須でない場合(変数に入れて処理する場合)は oct=$(printf '%o\n' 0xfa) よりも速いはず
643 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 23:43:56.37 ID:LCUbae2V.net] 他にも case を使って書けるはず 最大0xFFなら case $value in 01) 〜 02) 〜 : [fF][eE]) [fF][fF]) esac とかねw たかだか256+α行。頑張ればFF の一桁ずつ処理すれば行は減らせるだろう。
644 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 23:46:42.80 ID:LCUbae2V.net] >>633 訂正 × oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) )) ○ oct=$(( (0x$hex >> 6) * 100 + (0x$hex >> 3 & 0x7) * 10 + (0x$hex & 0x7) ))
645 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 00:06:22.06 ID:IA1rgq5F.net] >>632 posixの範囲ではprintfで16進数から文字に変換することが出来ない printf '\101' # => A printf '\x41' # bashは変換できるが、dashでは変換できない バイナリデータの処理など、文字コードを使って処理する必要がある場合は 8進数を使うほうが良い
646 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 00:09:45.15 ID:IA1rgq5F.net] 8進数よりも16進数の方が使い勝手が良いのにパーミッションが8進数なのは、 当時はまだ16進数が発明されてなかったからだったりするのかな? シェルスクリプトもそうだけど、なんか古い時代は8進数しかなかった感じがする それとも単なるビット数を節約しただけなんだろうか?
647 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 00:18:14.43 ID:kEXgFQM4.net] 7ビット機だったような
648 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 02:12:04.50 ID:sr4VPY0J.net] rwxで3ビットしか使ってない必要ないと思ったからだろう
649 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 04:55:24.40 ID:KdPNzCQK.net] パーミッションの話じゃなくて
650 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 09:45:35.22 ID:3tDP3W6T.net] >>634 ありがとうございます!
651 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 12:39:27.59 ID:e1bW+EWq.net] >>637 >当時はまだ16進数が発明されてなかったからだったりするのかな? どこでなにが「発明」を指して居るのかわからんが、コンピュータ業界コンピュータサイエンス(?)としては当時でも普通に16進数があっただろう。スイッチをパチパチしてマシン語を打ち込む当時のコンピュータでは打ち込むプログラムは16進数で書いてたようだから Unix version 1 は 18ビットマシンの PDP-7 でから始まり、すぐに PDP-11 に移行したがその名残だろう、K&R C の文字リテラルでは8進数表現しかできないのとかは、また、K&R C の影響じゃね PDP-7 は 18ビット= 3 3 3 3 3 3 で表した方書いた方がきりがいいからそれが普通のような感じだったんじゃね、今でもパーミッションは3ビットに収まっているので3ビット区切りで表した方が書いた方がわかりやすいのと同じように
652 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 12:48:38.39 ID:N6BvjGdd.net] 昔はなぜか 12bit 15bit 18bit 24bit 36bit あたりのマシンが多い
653 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 13:26:02.16 ID:e1bW+EWq.net] そうなの。見物したスイッチをパチパチしてマシン語を打ち込む当時のコンピュータは16bitだったから、PDP-7(というかPDP-11の前までのDEC)が異端かと思ったw
654 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 09:32:25.18 ID:pw3H64dJ.net] 16進数から8進数への変換って↓ $ hex=fa; printf '%o' $((0x$hex)) ↑こういうのだとPOSIX違反?
655 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 13:37:02.90 ID:fQRmEVoK.net] POSIXは知らんが、 古いzsh? は $((0x$hex)) が使えなくて $((16#$hex)) だった気がする もしくは $((011)) が zshでは8進数にならなくて $((8#11)) と書かないといけない という問題だったかもしれない。まあ忘れたw
656 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 15:46:33.91 ID:pw3H64dJ.net] ふむ。ということは今であればほぼ問題ないという訳か。 thx
657 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 18:40:57.99 ID:YblgUZDU.net] >>644 基本的にメインフレームってカテゴリのコンピュータはCPUも自社設計だったので 8bit単位じゃなく自分たちの使いやすいbit数だった ザイログとかモトローラのCPUを使っていると基本的に8bitの整数倍になる
658 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 22:42:51.90 ID:UP8ZY9Jm.net] symlnkのフォルダからファイルをmvすると実体パスの方で移動するけどmvの仕様?
659 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 22:58:25.61 ID:wuCdbk0L.net] 移動なら実体を移動しなきゃ移動しないだろう、ファイルシステム的に
660 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 23:05:40.23 ID:QKufl6gy.net] 例えば/a/b/cがあって、/x/yが/a/bを指すとする。 cd /x/y; mv c ..したときにcが/x/cじゃなくて/a/cになるという話なら仕様。 実際はcd /x/yの時点でカーネル的には既に/a/bに移っている。 pwdして/x/yと表示されたり、プロンプトに/x/yと出たりすることがあるのは、シェルがそう見せているだけ。 外部コマンドを呼んだ時点で/x/yにいるという情報は伝わらない。
661 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 23:22:54.08 ID:dHMqf7rP.net] シェルによっては今いるディレクトリをシンボリックリンクのままPWD環境変数に出力するから、外部コマンドでも>>651 の場合に/a/bではなく/x/yにいると分かることもある だからmvでもやろうと思えば環境変数によって動作をかえて/x/cに移すこともー応可能ではある ただ普通はそういう危なっかしい動きはしない
662 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 00:58:42.07 ID:XnqhgXWR.net] なるほど ~/dir/foo.txtがあって、dirのリンクを~/Desktop/dir_linkに作ったんだ んでdir_linkからmv foo.txt ../したらDesktopになくてあれってね シンボリックリンクはあくまで別名だって念頭に置かないといつかやらかしそうだなぁ
663 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 13:44:18.78 ID:uT43KuRv.net] シンボリックリンク自体はカーネルっていうかファイルシステムの機能であって シェルの機能じゃないよね? シンボリックリンクされたディレクトリへの移動やその表示が、シェルの機能?
664 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 14:55:36.41 ID:16gV8N0U.net] シンボリックリンクはただのファイルで、APIが機能を提供してるだけだろう ハードリンクはファイルシステムの機能だろうが
665 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 15:20:14.51 ID:0wgm+uqt.net] シンボリックリンクはPOSIXで決まっているが、 シェルスクリプトとは関係ない。 シェルとも関係ない。すれ違いだ。 シェルスクリプトの話をしろ。
666 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 15:43:16.78 ID:PpvL3bdr.net] シンボリックリンクもハードリンクもファイルシステムの機能だ
667 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 15:44:56.02 ID:mZE+d06B.net] ドヤァ
668 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 16:01:07.98 ID:16gV8N0U.net] >>657 どこまでをファイルシステムかと言うのかだが、論理矛盾とかリンク切れとかあってもなんも関係ないのだから低レベル=どのファイルシステムでフォーマットする?というファイルシステムのファイルシステムではないな そのレベルではファイルとフラグを提供しているにすぎない APIも含めたOSがアプリケーションに対しての提供するファイルシステムといえばファイルシステムだろうが
669 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 16:41:43.41 ID:aoth6Tve.net] まぁ、いずれにしても、ここではスレ違い
670 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 16:58:42.91 ID:COQ8/G13.net] シンボリックリンクやハードリンクはOSの機能 ファイルシステムはそれを実装するだけ (FATのように実装してないものもある)
671 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 17:01:20.42 ID:PpvL3bdr.net] アホばっかw
672 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 17:09:58.15 ID:fWeAQpZu.net] 自戒か
673 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 17:22:55.59 ID:qNyZUwSM.net] ファイルシステムはOSの提供する1つの機能だろ
674 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 20:09:09.12 ID:uT43KuRv.net] いつからカーネルがOSに掏り替わった?
675 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 16:36:07.25 ID:vuS5tsH7.net] カーネルってファイルシステム含まないでしょうが
676 名前:デフォルトの名無しさん mailto:sage [2019/09/25(水) 17:26:48.60 ID:Fy/ppuPa.net] 子供がまだ食ってる途中でしょうが
677 名前:デフォルトの名無しさん [2019/09/29(日) 15:56:27.36 ID:kt1IDkk5.net] 誠意って何かね
678 名前:デフォルトの名無しさん [2019/09/29(日) 17:07:22.81 ID:G1Omq4Sq.net] 金
679 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:09:52.55 ID:VaR9nylT.net] 女だったらアレかもしれんが
680 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:22:34.45 ID:CY5JaLwa.net] 俺が定期的にお題を出してやらないとすぐクソスレ化するなw
681 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:31:49.84 ID:cn7qdGIP.net] Oh, I like Japan. Japanese are crazy. Ha ha ha. Japanese are pigs, pigs, you know. Moneys and they have small cocks you know short legs yellow monkeys. Do you understand?
682 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:34:18.39 ID:RIFVILY+.net] POSIXの話するから荒れて盛り上がるから誰かしてよ
683 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 19:34:36.19 ID:RIFVILY+.net] POSIXの話すると荒れて盛り上がるから誰かしてよ
684 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 20:34:15.29 ID:1ct4yMlj.net] POSIX準拠で固定小数点ライブラリほしいな 小数使うことは稀だけど、たまに無いとめんどくさい exprは外部コマンドで遅いので却下w
685 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 20:53:22.53 ID:UgGWrkoZ.net] bashって便利だけど計算部分だけマジでダサいな 1+1が $((1+1))ってなんなんだよ
686 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 21:19:57.63 ID:1ct4yMlj.net] どの言語にも言えることだけど、 ダサい部分ってのは互換性のためだよ シェルスクリプトは外部コマンドを関数として呼び出せて、 そして外部コマンドに使える文字は、ファイルに使える文字と同じ だから例えば@とか%とかいう文字でさえ、コマンド名として使える だから、安易に記号を追加するわけにもいかないし予約語も増やせない。 $に関してはシェルスクリプト当初から特殊記号だったから 新たに特殊記号や予約語を増やすのではなく$を拡張するという方法を採用したのだろう 互換性は一番大事だからね
687 名前:デフォルトの名無しさん mailto:sage [2019/09/29(日) 21:21:56.71 ID:1ct4yMlj.net] 補足 例えば「1 + 1」は、"1"コマンドを、+と1という引数で呼び出すという意味になるし 「1+1」だと"1+1"コマンドになる。 選択肢が限られるんだよね
688 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 06:57:25.74 ID:Ceph+2oU.net] $ awk 'BEGIN {print 0.1+0.2}' 0.3 bcより使いやすい悲しみ
689 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 13:47:50.63 ID:bgqbOy9v.net] POSIXの仕様書, 算術展開での(浮動)小数点演算は今度の2020年度改訂で一部解禁されるらしい。 ちなみに時を同じくして$'\n'←みたいな書式も解禁。 やったぜ。
690 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 14:14:05.05 ID:gJLA2fQe.net] やったぜ。
691 名前:デフォルトの名無しさん [2019/09/30(月) 14:57:01.11 ID:seE3nGDx.net] 石器時代かよワロタw
692 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 14:59:09.67 ID:1VQTT5dv.net] 生理がこないんですけど どうしたらいいですか?
693 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 15:14:42.58 ID:g4qimp0d.net] 俺も生理来たことないわー
694 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 15:24:33.48 ID:g4qimp0d.net] >>680 どこ情報ですか?
695 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 17:46:55.62 ID:zGRcNdYK.net] もしもし、先生!もしもし! だけどもねー、実はあのー、子供つくらないようにしてるんですよね、わたくしも本当に辛くてですね、子供には遺伝しないでしょうか?
696 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 19:45:29.40 ID:bgqbOy9v.net] >>685 austingroupbugs.net/view.php?id=249 こことか。
697 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 20:35:29.76 ID:sHSicWZI.net] >>687 いや、小数の話
698 名前:デフォルトの名無しさん [2019/09/30(月) 21:58:43.29 ID:M1BD3UNk.net] しょうっすか…
699 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:03:44.06 ID:qRuhgEzP.net] 無理にシェルスクリプトだけで小数対応しなくても、 perl -e "print 0.2*0.3" とか、いろいろやりようはあるからあまり必要性を感じない。
700 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:20:20.33 ID:nI7iDoAi.net] >>690 大量に計算をするとプロセス呼び出しになるから遅いんだよ $ time ksh -c 'for i in $(seq 1000); do n=$(echo "0.2*0.3" | bc -l); done' real 0m1.921s user 0m1.762s sys 0m0.715s $ time ksh -c 'for i in $(seq 1000); do n=$((0.2*0.3)); done' real 0m0.009s user 0m0.009s sys 0m0.000s たったの1000回でここまで差が出るからね
701 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:28:35.91 ID:qRuhgEzP.net] 意図と違うと思うが、 time perl -e '$j=0; for($i=0;$i<1000;$i+=1) { $j+=0.2*0.3; }; print $j' とか、別にシェルスクリプトだけに頼らんでもなんとかなってしまうというか・・・・
702 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:29:54.18 ID:nI7iDoAi.net] だから出来るできないの話はして無くて 遅いって話をしてる
703 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:35:15.29 ID:1VQTT5dv.net] >>692 これで事足りるな
704 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:58:52.54 ID:nI7iDoAi.net] perlは入ってない環境も有るのでその点でも駄目だしね
705 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 00:02:33.23 ID:cNB/gbgI.net] >>679 これで事足りるな
706 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 00:27:03.86 ID:rxcb8vGn.net] 必須すぎやろw
707 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 01:47:40.69 ID:SPlRKvH8.net] なになに縛りが好きなマゾなんだろうw
708 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:00:19.69 ID:rxcb8vGn.net] そんな事する必要がないなら縛りって言ってもいいけど、 perlが入ってない環境は実際に存在するからね
709 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:09:56.58 ID:ESup7bfu.net] awkも使えない環境で何やるんだよw
710 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:09:58.85 ID:PTA8MEY/.net] >>679
711 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:36:49.10 ID:eGCx9XC9.net] >>700 awkはbusyboxに入ってるよw
712 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 09:01:32.62 ID:O2y9F
] [ここ壊れてます]
713 名前:dCY.net mailto: 「可搬性が高い」を「POSIX縛り」と取り違えてるおバカさんがいますね… [] [ここ壊れてます]
714 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 09:11:30.09 ID:ZA6pNaC0.net] POSIXで縛るだけではPOSIX未満のbusyboxで動かなかったりするからね 可搬性を高くするにはPOSIXで規定されたコマンドであっても なるべく使わないほうが良い
715 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 10:51:02.41 ID:CGhZJwfl.net] どういうことなの…
716 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 11:09:51.43 ID:ZA6pNaC0.net] ここはシェルスクリプトのスレ つまり可搬性とはシェルスクリプトの話をしてる。 シェルスクリプトではよく外部コマンドを呼び出す しかし外部コマンドはOSによって違う。 特に基本的なコマンドは、各OSでバラバラに作っていたり 独自の修正を入れており複数の実装があり微妙に動きが異なっている。 例えば、LinuxのsedとMacのsedでは使える命令が違う。 POSIX準拠のコマンド(もちろんオプションなども含む)で規定されてるものだけを 使っていれば可搬性はそれなりにあるが、それでも完璧じゃない。 例えば組み込みで使われるbusyboxはPOSIX準拠コマンドのサブセットが実装されてる。 だから本気で可搬性を高くしようと思えばPOSIX縛りでも不十分。 POSIX準拠のコマンドが信じれない。という前提にたてば 思い切って外部コマンドすら呼び出さない、完全にシェルスクリプトだけで 実装するのがもっとも可搬性が高い。 もちろん限界は有るので実際には出来る限りシェルスクリプトで作って、 外部コマンドは必要最小限、必要に応じて互換性を吸収するようにラッパー関数を作る。 ということになる。
717 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 15:50:14.87 ID:P1455Lxu.net] 可搬性に異常に拘っているのは一人か二人しかいないけどな 可搬性に拘ってないというレスにも可搬性を押し付ける
718 名前:デフォルトの名無しさん [2019/10/01(火) 16:28:55.36 ID:9fvqkmcJ.net] 認めろよ。 シェルスクリプトに可搬性などない。 どこでも動くシェルスクリプトなど幻想。
719 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:40:08.47 ID:8eIOCDAd.net] hoge () { echo "Hello" } for i in $(seq 1000); do hoge a=$(hoge) done myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな 簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな?
720 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:46:56.18 ID:O2y9FdCY.net] それBashでやってない? 試しにKshでやってみて。(俺環かもしれんから,速度比較は晒さない)
721 名前:デフォルトの名無しさん [2019/10/01(火) 16:52:40.16 ID:/6RuW8/Q.net] perlが入ってない環境ってそれは入れる必要ないんだろ 一から構築していくならそれでいいけど
722 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:54:32.38 ID:8eIOCDAd.net] なるほど。ksh(だけが?)がなんか賢いかな。zsh他も差がある
723 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 17:07:00.59 ID:cNB/gbgI.net] perlが無い環境があるからどうのこうの言うけど kshが無い環境があるからは言わないんだなw
724 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 17:10:13.56 ID:8eIOCDAd.net] 違う人じゃね?同一人物だったらアレだけどw
725 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 18:59:48.82 ID:8eIOCDAd.net] >>712 zsh他も差があるは、>>709 で体感できる差があるが正しいか kshでも差があるね。ループ数増やせば体感できるほどの差となるね
726 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:16:54.12 ID:fust4gpU.net] >>709 forkだよ。$( ) の部分がサブシェルになってて 多くのシェルではサブシェル = 別プロセス生成で実装されてる。 そのおかげでサブシェルの中でcdを実行したり変数を使ったりしても 呼び出し元は汚染されたりしない kshはサブシェルの実装が最適化されていて 全てではないが、サブシェルの部分を同一プロセスで実行する。 独自で状態の保存と復帰を実装してるのだろう。 https://codeday.me/jp/qa/20190810/1425430.html kshは速いと言っちゃ速いんだが、その(複雑な?)仕組みのせいで バグのもとになってたりする。ということを書いてあるページが 有ったんだがどこか忘れた。
727 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:25:21.59 ID:fust4gpU.net] 遅い原因の本質は標準出力のキャプチャじゃないから この二つでも違いがでる hoge () { : } for i in $(seq 1000); do hoge (hoge) done >>715 > kshでも差があるね。ループ数増やせば体感できるほどの差となるね そうなんだよね。サブシェルのコストは以外と大きい。 だから変数に入れて使うことが目的とした関数は以下のように グローバル変数を使って返したほうがずっと速いわけさ hoge () { RET=Hello } for i in $(seq 1000); do hoge a=$RET done
728 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:26:55.18 ID:8eIOCDAd.net] >>716 内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ) zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw a=0 ls | while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど とりあえず、どうしようもないそういうものということでいいのね。どうも
729 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:30:13.87 ID:8eIOCDAd.net] >>717 せっかくですが、ちょい本題とは違うかな。そりゃ () は... なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど どうも
730 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:37:54.80 ID:fust4gpU.net] >>719 > なんで内部関数なのにサブシェルになんのかねん、 考え方が違う。 コマンド置換$( ) は「サブシェルを使用して実行する」という"仕様"なんだよ なんでサブシェルになるのか?ではなく仕様でサブシェルにすると決まってる。 ただし別プロセスにするとは決まっていない。だから子プロセスとかいう既存の 名前ではなく、新たにサブシェルという用語を作った。 サブシェルの仕様としては、「サブシェル内で行った変数などの変更は呼び出し元には伝わらない。」 などがあるが、それを実現してるなら別の別プロセスでなくてもよい。 だけど別プロセスにするほうが実装が簡単だから多くのシェルではサブシェル=別プロセスになってる。
731 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:41:25.43 ID:8eIOCDAd.net] >>720 その続きなどを読んでよ。言われていることはすでに書いてあるんですけど どうしようもないという結論が得られたのでw、 結局、こんなことにもそれなりの差があるんだから「常時それも無条件で」実行時間の差があるなんて気にするなんて無意味だなと なにかそれが問題になったときに気にする対応すればいいだけだなという。のをそもそも言いたかったw
732 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:44:28.64 ID:fust4gpU.net] >>718 > 内部関数なのにってとこがね 他の言語の場合、(基本的に)関数内の変数の変更は呼び出し元に反映されない。 つまりローカル変数になってるだろ? それと同じなんだよ。POSIXの範囲ではlocalもtypesetもないから シェルスクリプトにはローカル変数がない ように思えるが、実はサブシェルを使うからローカル変数は必要ない。とも言える。 ローカル変数を実現するためのサブシェルと言える。 サブシェルの仕様としてローカル変数は必須の機能だが、別プロセスにするのは必須ではない。 サブシェル(別プロセス)と捉えるから仰々しくなってるが、 変数のローカル化と考えれば、内部関数内の変数をローカル化するってだけだから 「内部関数なのに」とは思わないだろ?
733 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:51:56.19 ID:8eIOCDAd.net] >>722 なにを教えてくれてるのか教えたいのかわからないです 内部変数?内部変数環境のことは言ってないです。他の言語でもの(内部)関数を呼ぶその返り値を使うって話なんですけど 内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか?内部関数という言葉が悪かったならすまんすですけど
734 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:52:05.05 ID:fust4gpU.net] >>718 そのコードに関しては ls | { a=0 while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... } こう書けばいいって事がわかってから悩むことはなくなったなw 上記をさらに発展して、関数化すれば以下のようになる。 hoge() { a=0 while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... } ls | hoge そうするとa変数は実質ローカル変数として扱ってるんだから スコープ的にはこっちのほうが適切だと気づくだろう
735 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:53:21.70 ID:fust4gpU.net] >>723 > 内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか? 使い分けるんだよ。 ローカル変数化したいならサブシェルを使う。 そうでないならサブシェルを使わないって。
736 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:56:56.36 ID:8eIOCDAd.net] >>725 なんか教えたがりのようですけど、ちょっと無理があるかなと あくまでも「他の言語的感覚では」が前提、それとは違うというのの確認でしかないんですけど 使い分けるとかそもそも内部変数の話はしてないんですよ
737 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:00:53.41 ID:fust4gpU.net] >>726 他の言語感覚って言うけど、 じゃあお前いくつ言語しってんの?って話だよ。 狭い言語の知識=言語の全てって思ってるだけさ
738 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:02:16.96 ID:8eIOCDAd.net] そもそものそもそもは、bcの毎回起動するのに時間がかかるというので、せっっかくの標準で暗黙的にもマルチプロセスなのでサーバ&クラアント的に起動しとけばいいんじゃねと trap 'exec 8>&-; exec 7>&-; rm -f from-server to-server' EXIT mkfifo from-server mkfifo to-server exec 8<> to-server exec 7<> from-server < to-server bc -l > from-server & calc () { echo "$*" > to-server read result < from-server echo $result } てのを書いたのよ、単なる興味的にどれだけのコスト削減できるのかを試し確認するために。で、この一連の(他の言語的には)思ってもいなかったとこでコストがあるなと。その確認だけだよ。で、やっぱり>>721 のようなことだなとw
739 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:02:43.57 ID:8eIOCDAd.net] >>727 はいはい
740 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:09:04.89 ID:fust4gpU.net] >>728 どの言語でも、その言語を知らなければ、その言語特有の所でコストがかかるってだけだ だからちゃんとその言語を知らなければいけない。
741 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:10:22.49 ID:8eIOCDAd.net] はいはい。知っていることを延々と言われても。それも聞いてもいないのに
742 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:09:03.88 ID:/EdGAgHY.net] >>726 つうか、お前の感覚の話なんか誰にもわからんだろ。 だから、馬鹿だと言う前提で説明してるだけじゃん? それすら理解できないってことはやはり馬鹿なんだなぁと思うばかり。
743 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:21:30.07 ID:T/R8ZN8b.net] ろくにシェルスクリプトのことを知らないから聞いてみた。 親切に教えてくれる人がいた。 ……何が不満なんだ?
744 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:25:17.92 ID:8eIOCDAd.net] 何がお怒りのなのかさっぱりですけどw
745 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:31:30.87 ID:8eIOCDAd.net] よくわからないが、他の言語で func() と a = func() で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718 で 関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw
746 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:52:27.77 ID:fust4gpU.net] すべての言語はそれぞれ違っているんだが、 同じ言語がほしいのか?
747 名前:デフォルトの名無しさん [2019/10/01(火) 21:57:08.01 ID:Ueonb/Q5.net] みんな違って みんないい まつお
748 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:01:17.19 ID:8eIOCDAd.net] >>736 相変わらずだね。何を言いたいのかさっぱり 返り値を使う(関数)使わない(サブルーチン)でコストがこんなにあるって話なのに
749 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:14:23.82 ID:8eIOCDAd.net] そうだ、ksh(zsh)ならreadでと思ったら、逆に遅くなるのね hoge | read a サブシェルになるのはhoge。kshはパイプでもパイプを使わずになんちゃらを使ってなんとかかんとかwとかあったからちょっと期待したのに あれだな、そもそもシェルスクリプトの関数の返り値はreturnでの実行ステータスしかない、それ以外の形態(テキスト)は考えていませんからこんな感じにしかなりませんってとこか
750 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:58:18.96 ID:9HRGRt02.net] for ループは、while よりも遅いだろ。 bash も、dash よりも遅いだろ ループでは、for, bashを使わない方が速い
751 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:34:09.29 ID:DttT1lmW.net] returnが返り値ってw あれはエラー情報だろ 例外と同じ。
752 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:35:42.98 ID:DttT1lmW.net] パイプで処理をつなげていくシェルスクリプトにおいて 返り値=出力なんだよ 出力を読み取って、処理して出力する そういう基本がわかってないだけ
753 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:53:15.78 ID:8eIOCDAd.net] return なんすけど。returnの意味知ってる?とかいう。いや、しつれい エラー情報でもない、単なる終了ステータス。exit ではないのは、まあ、関数だからと、exit と区別がつかないからかなw
754 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:59:02.30 ID:8eIOCDAd.net] function name () { } が、POSIXではないのは(これからも採用されないかも?採用するの?)というのは、関数じゃねえー、所詮コマンドだなというとこかなと思ったりしてみたり、今回w >>742 そのレベルで馬鹿にできるのはあなたがそのレベルと言っているようなもんかなとw てか、return なのにそれを返り値と見るのを頭から否定するのは、いままでの同一人物としか思えないんだけど。シェルスクリプトは知っているがシェルスクリプトしか知らないシェルスクリプトにだけ拘るw
755 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:19:13.78 ID:DWeKr+Az.net] >>743 returnの意味は「帰る」 何かを戻すという意味はない
756 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:20:54.57 ID:238K9SSk.net] マジで言ってるの?もっと勉強しよう、他人にアタるならw
757 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:20:59.41 ID:DWeKr+Az.net] アセンブラでもreturn(RET)がある。 これも戻るという意味なだけ 呼び出し元に何かを戻すという意味はない
758 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:23:56.96 ID:238K9SSk.net] アセンブラでもマクロアセンブラはあったりするけどな 戻り値をどういう形態で(どのレジスタにとか)という決まりであれば >呼び出し元に何かを戻すという意味はない マジで言っているの?アホらしい
759 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:25:12.52 ID:DWeKr+Az.net] >>748 「マジでいってんの」しか言ってないよなw returnを翻訳してみろ。戻るという意味しかない
760 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:26:09.34 ID:DWeKr+Az.net] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_24 returnの説明にも、nは終了ステータスと書いてある。 return valueとは書いていない
761 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:30:13.30 ID:238K9SSk.net] 言うならアセンブラでなくて機械語だな。ほんとにしょうもない知識自慢 >>749 >returnを翻訳してみろ。戻るという意味しかない マジで言ってるのとしか言えんやん。「return なんとか」とか普通にあるぞ? >>743 にreturnしか書いてないからか?なんかしょうもないなああwなんかしょうもないけど、だったらなんかすまんな >>750 関数として見たらだよ。すでにそういうことは>>743 ,744で言っているんだけど 所詮コマンドだなで終わってるよ
762 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:32:56.67 ID:o4tQ0hze.net] >>735 よく分からないで批判する癖は辞めた方が良い
763 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:35:11.54 ID:o4tQ0hze.net] >>751 機械語にreturnに類する語は出てこないぞ?
764 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:35:40.52 ID:238K9SSk.net] 「よくわからない」が何を指しているのか「よくわからない」だろう? また単なる「語」に食いつくwいつものかとしか思えません
765 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:36:26.76 ID:238K9SSk.net] >>753 イミフ。機械語は01だからな。そんな話はしてない やっぱりいつものかw
766 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:39:39.82 ID:238K9SSk.net] 同一人物かどうか知らんが、>>742 から同じ人物としてしまう、もうw 同じ「レベルw」でしかも同じ姿勢としか思えないので。もう十二分にそのレベルwを自ら率先して晒してしまったので>>744 の後半で正解だったなと あとはもう「教えてww」やんない
767 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:53:53.42 ID:o4tQ0hze.net] いつもの妄言を喚いて自分の敵は一人だと思い込んでる痛い奴だったか
768 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:55:39.44 ID:238K9SSk.net] 敵www そういう姿勢だったのね。そうだよね、あなたはw
769 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:46:06.49 ID:JFJLbhDm.net] IDが変わっても判別しやすいのはいいこと ぼんやりしてて助かる
770 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:51:03.64 ID:o4tQ0hze.net] >>758 いやおまえ、オレと関係ない人を同一人物扱いしてんじゃん
771 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:58:29.05 ID:238K9SSk.net] >>760 >>756 をよーく読もうな。読めない? >>753 は何を言いたいの? 機械語は01だからreturnに対する語はないと言いたいの?ととって、ああまたかというw>>756 なんだよ(よく読んでねw) >機械語にreturnに類する語は出てこないぞ? って、どういう意味?俺の理解とは別でならすまんかったちょっと続ける?
772 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:24:37.13 ID:DWeKr+Az.net] 知らないなら言わなければいいのにw RET命令(Return from Procedure) softwaretechnique.jp/OS_Development/Tips/IA32_Instructions/RET.html
773 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:28:45.47 ID:238K9SSk.net] >>762 なにを言いたいのかさっぱりなんですが、具体的に自分のお言葉でお願い まさか、RETはあるがReturnは無いではないだろうし、さっぱりわからん (そしてなんで同じやねん、その姿勢w)
774 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:43:25.73 ID:DWeKr+Az.net] 同じだだろ。何いってんの? 略だから違うんだって言いたいの?
775 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:44:26.53 ID:o4tQ0hze.net] >>762 そしてそれはアセンブリ言語という..
776 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:46:58.80 ID:DWeKr+Az.net] シェルスクリプトのreturnは終了ステータスを返すもので これは他の言語の返り値ではないのは一目瞭然なんだがね だからこそ $_ という変数(外部コマンドを呼び出した時の終了ステータス)で アクセスできるわけだし しらないならシェルスクリプトを勉強してくださいって言うしか無いな なんならbashのドキュメント引用しようか? return [n] 指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマン ドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行 中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの 終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以 外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラッ プ に設定されたコマンドが実行されます。
777 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:47:32.93 ID:DWeKr+Az.net] >>765 その違いは今、重要なのか?w returnの意味なんて言語によって違うって話をしてるんだが
778 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:49:09.36 ID:238K9SSk.net] >>764 マジか 残念ながらが同一人物に見えるとやはりなお思ってしまうよw マジか。そんなんで偉ぶるwなんの意味があるのだかさっぱり そもそもマシン語ではない、アセンブリ=ニーモニックだし。ニーモニック命令は3文字にという昔の風習なだけだろうに 豆知識 そもそも、そんなRETでもいいけどReturnすらないCPUもある。POPしてジャンプという なんだかなあ
779 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:55:47.57 ID:238K9SSk.net] あら。なんかすまん、別人なのね >>766 んー、なんで「知らない」前提なのかさっぱりわからん。一般的な関数の形態としての話だし、その言っていることは>>743 ,744で書いているのだけど(もちろんそんなことは前々から知っていての) あくまでも関数の形態としてのreturn文ね。わからないかなあ なにか俺は知らないを前提に書いているようだけど、なんで??
780 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 04:19:21.82 ID:238K9SSk.net] ん?? ID:DWeKr+Az が頓珍漢に横入りしたのかwwなにをのたまっているのかだかな。もうあんたはいいよw同じこと繰り返してるし >>768 ,769はID:o4tQ0hzeかと思って書いた >>761 はID:o4tQ0hze にご理解いただけたということでよろしいのですかね??
781 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 06:38:15.47 ID:Ge1fP5ct.net] シェルスクリプトはシェルスクリプトだっていってんのに 俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない! といわれても、 うんじゃあ、シェルスクリプトを使えるように、シェルスクリプトの勉強をしましょうか? としか言えんわなw
782 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 07:03:56.09 ID:R26grXOk.net] アセンブラじゃなくて機械語だってすごいよなw
783 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 08:47:07.26 ID:238K9SSk.net] >>771 どう読んで、そう思っているのか?? 俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!なんてこれっぽっちも言ってないけど 他の言語の関数とはやっぱ違う他の言語の関数と同じようにはできないねというだけだが?端的には>>735 と所詮コマンドということ POSIXとしてもfunctionと名乗ってるけど、一般的=他の多くの言語のfunctionとは違うfunction、functionというよりコマンドだなやっぱちう それがシェルスクリプトのfunctionで他の言語のfunctionとは違うって強く俺に言いたいんですかね? いいよ、めんどくさいから読まなくても。レスするのもめんどくさいからw >>772 まあ、そういう意味じゃないんだけどね(どういう意味のレスなのかイマイチだがw) マクロアセンブラがあるようにアセンブラはどのようにもできる、やろうと思えば。縛りはそこじゃなくて、機械語だなという また、機械語になんて関数なんて概念ないからねって話にも膨らむのになというw
784 名前:デフォルトの名無しさん [2019/10/02(水) 09:15:47.03 ID:gGwgwb6G.net] 俺はたぬきしか知らないなんて言ってない! みかんはたぬきとは違う!
785 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:19:32.36 ID:R26grXOk.net] 機械語に関数の概念が無いってすごいよなw
786 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:23:09.06 ID:238K9SSk.net] めんどくせえなあ。とんちんかんな変すぎるレスいらんw 知らなかったのはサブルーチンとして使うのと関数として使うのにコストの差が思った以上にあったというだけだな。functionなんだからそんなに差が無いようになんかあるだろうと思い込みによる それだけだよ 別にだから
787 名前:関数のように使わないとも言わんし、いままでも使ってるし変わらずに使うけど [] [ここ壊れてます]
788 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:25:03.86 ID:238K9SSk.net] >>775 無いよ。機械語を駆使して関数を作ってるっていう 機械語レベルの関数って?まあ、そんなCPUがもしかしたらあるのかもだが、知らんんなあ
789 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:39:55.43 ID:238K9SSk.net] 機械語にはサブルーチンはある。なきゃ困る(主にどこのアドレスに返ってくるのかのため)。単なるサブルーチンコール、引数の概念とかも無いw 引数も返り値(サブルーチン+返り値=関数)も、単なるmoveとかpushとかで「適当」なとこに入れての(主に高級言語(ほぼCだが)の仕様にあわせての)で、機械語の概念では存在しない おしまい
790 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:11:40.69 ID:caSqV8Sl.net] これマジ?
791 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:39:50.67 ID:238K9SSk.net] この板にもあるだろうと思ったらあったし、 「関数」で検索したらアセンブリで関数というのを説明しているようなレスもあるやん 調べろよそのぐらいw
792 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:46:24.58 ID:238K9SSk.net] ああ、すまん。勇み足だった。よく読んだらあんま詳しくはないかな ある程度知っていての注意点ぐらいだった
793 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:51:24.96 ID:238K9SSk.net] お詫びに探してきた https://nw.tsuda.ac.jp/lec/i486/ 興味があるなら、読もう。アセンブリの部分をも
794 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:54:19.14 ID:caSqV8Sl.net] サンクス 読んでくるわ
795 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:01:36.56 ID:vYvaxxoe.net] だいたいシェルスクリプトと機械語なんて超相性悪いから シェルスクリプトの概念を例える別の言語として機械語(含むアセンブリ言語)は最悪の選択ではw シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか 適用範囲の節で明言してるし。 (つーかこの喧嘩って俺がkshの速度を持ち出したことが発端なんだな… 良かれと思って余計なこと言わなけりゃよかった)
796 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:18:14.46 ID:238K9SSk.net] >>784 >シェルスクリプトの概念を例える別の言語として機械語 じゃないよ、そもそも言いだしたのは。俺じゃないけど。単にreturnという「語」のに絡みついてだけの>>747 まあ、機械語(=1対一でしかないアセンブラ)では当たり前なんだが、上記の通りに てか、めんどくさいから読まないでしょ?レスするのめんどくさいよw
797 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 11:26:54.15 ID:238K9SSk.net] >>784 >シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか >適用範囲の節で明言してるし CPUによって全然違うし(CPUメーカーが作るもんでしょう)なあ。標準化なんてする範疇じゃないんじゃないかな >kshの速度を持ち出したことが発端なんだな… いや、違うよ。kshの件は早々に終わっているといえば終わってる。そんなのが全く関係ないとこでながながとなってるだけだな その前の俺の思惑wからだな、長々としている原因は。強いて言えば
798 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 14:05:10.23 ID:D8VruPt/.net] >>718 , >>719 が既に頭悪そうなんだよ。その辺りから見直したらいいんじゃないかな。
799 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 14:31:23.77 ID:238K9SSk.net] よくわかんないなw
800 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 17:06:22.98 ID:em13adMU.net] ファイル名に()が入ってるやつをリネームしようとしたら Syntax error: "(" unexpected と言われる・・ ファイル名から()取り除いたらうまくいきました どうすればよいでしょうか
801 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 17:19:25.51 ID:ccSnb7w3.net] touch "foo()bar" で作れたからそれかな あるいは 正規表現のできるrenameツールに任せちゃう https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg https://pastebin.com/pYBipcQt ~/bin/rename.pl dry s/foo../foo/ foo\(\)bar foo()bar => foobar ~/bin/rename.pl run s/foo../foo/ foo\(\)bar
802 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 20:34:07.49 ID:9nRFYl/a.net] >>789 file="aaa (bbb) ccc" mv "$file" "aaa" シェルスクリプトでは引数の変数は""でくくるもんだ 常識だからな shellcheckでチェックしろ
803 名前:デフォルトの名無しさん [2019/10/02(水) 20:52:22.16 ID:56vpBHGI.net] >>789 ファイル名をシングルクォートまたはダブルクォートで括る。またはそのようにシェルが特別な解釈をしてしまう文字の直前に \ を入れる。
804 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 00:15:58.71 ID:SqD9WxB/.net] 空白絡みで便乗質問です。 スクリプトがあるディレクトリを変数に入れるために、よく、 BASEDIR=$(cd $(dirname $0); pwd) みたいなの書くと思うんですけど、 スクリプトを呼び出す際の相対パスや絶対パスに空白があっても大丈夫な場合はどう""をつければいいんでしょうか。 いつも試行錯誤するんですけどうまくいかなくて空白禁止にしちゃってます。
805 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 00:16:32.35 ID:SqD9WxB/.net] 大丈夫な場合→大丈夫にしたい場合、です。
806 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 00:41:53.26 ID:kXokk7Ss.net] dirname "$0"じゃダメな理由はなに?
807 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 00:56:16.10 ID:WHDqtNcX.net] "$(dirname "$0")" じゃない
808 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 02:58:37.36 ID:DFQVUXe/.net] >>793 BASEDIR=$(cd "$(dirname "$0")"; pwd) BASEDIR="$(cd "$(dirname "$0")"; pwd)" ↑これは不要 "引数"として渡す場合に必要。 変数への代入は引数ではないので不要
809 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 07:38:56.48 ID:vim6DLSQ.net] >>790 ありがとうございます 今のところThunarに標準昨日の一括リネームでなんとかなりました >>791 ,792 ls: 'aaa (bbb) ccc.jpg'にアクセスできません: みたいな感じになりましたね
810 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 08:37:13.31 ID:/bA39X9L.net] 小数の計算がPOSIXで標準化されるって本当? これどうにかしてほしいんだが $ zsh -c 'echo $((0.1+0.2))' 0.30000000000000004 固定小数点をサポートしてくれよ。
811 名前:デフォルトの名無しさん [2019/10/03(木) 09:12:38.31 ID:BSBvRGI4.net] 各言語での 0.1 + 0.2 の結果 0.30000000000000004.com/
812 名前:デフォルトの名無しさん [2019/10/03(木) 09:41:30.99 ID:T62xH6xP.net] 言語というよりはどういうライブラリ使っているかの問題だと思うが
813 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 09:46:51.64 ID:wbZFe5vy.net] きちんと0.3返す言語は 分子と分母の2つ記録するから速度は遅くなる 遅いシェルスクリプトの選択した方法は正しい
814 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 09:50:59.70 ID:/bA39X9L.net] いや、誰が浮動小数点数的な答えを求めてるのよ? 誰も数学的に間違った答えなんか求めてないでしょ?
815 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 13:46:15.91 ID:oxXSy4fC.net] 固定小数点なんて採用することはないな 提案してみろ、まずはStandard C Libraryとして
816 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 14:46:29.02 ID:Fw9k5QN4.net] >>801 ライブラリというより、内部での浮動小数点の形(float,double,long doubleのどれか。いまどきfloatは無いか)、および、いつ丸めてるかだけじゃね >>800 のも大体は結局はCでの結果でしかないだろう。デフォのdoubleの結果がほとんどだろう 例えば、awkは問題ないように見えるが。2.3 / 0.1 = 23 だが、int(2.3/0.1) = 22 になるのも
817 名前:デフォルトの名無しさん [2019/10/03(木) 14:56:31.03 ID:gitagY/F.net] >>805 いや、だからライブラリだろ。 同じ言語でも内部表現に関する決まりのない言語なら例えばBCDで保持するようにしてそれ用のライブラリで計算や10進文字列変換したって構わないんだからな。
818 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 15:03:35.77 ID:Fw9k5QN4.net] そういうある意味特殊なことをしようとする意志のがあればな 結局はCなんだよどういう言語でもああいう部分は。そしてCがそうだからただそうなだけ。わざわざ言うようなことをするのは極めて少ないだろ 浮動小数点がIEEEで決められてる正規なものだし。特殊なプログラムを使えということだよ=シェルとかに求めるのは現在のコンピュータ界隈では無理筋だな
819 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 15:08:16.36 ID:wbZFe5vy.net] perl か何かに任せておけ #!/usr/bin/env perl use bigrat; my ( $ss, $F, $ISO ) = (@ARGV); unless ( defined $ISO ) { $ISO = 100 } my %shutter_speed = ( 30 => -5, 25 => -14/3, 20 => -13/3, ...... ); printf "%s\n", 0/1 + $shutter_speed{$ss} + $F_number{$F} - $ISO_number{$ISO}; ただし perl bigrat だと 0/1 + を抜くと型が整数処理されるというわけのわからん挙動するケースがあったから 別の言語がいいけど
820 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 17:47:54.90 ID:vTPkh0Cq.net] >>807 浮動小数点とIEEE754は同じ意味じゃないから語弊が生まれるよ。 文字コードとUTF-8ぐらいの関係だろう。 そして大抵の小数を扱えるプログラムがCでIEEE754に準拠した浮動小数点による取り扱いをしてるって意見は、全然同意できないな。
821 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 18:03:01.77 ID:NYKgu9W2.net] 1. 数学的には正しくない。 2. 速度のために正確さを犠牲にしている。 3. 誰も間違った答えは望んでいない 仕様だから〜とかいう話じゃないんだよね。 本当はみんな正しい答えが欲しい。 シェルスクリプトに速度は重要じゃないんだから 正しい答えのほうが便利だろ
822 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 18:39:51.77 ID:K4DSf+RO.net] ほとんど近似値でたりるし必要なら自分でつくるなりすればとしか思わないよ
823 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 18:40:45.48 ID:Fw9k5QN4.net] >>809 浮動小数点とIEEE754は同じ意味じゃないって?何を言いたいのかわからん IEEE準拠じゃない独自のがあると?今時はFPUでやってるもんだし、速度なんぞを犠牲にしてまでもそういうのを「わざわざ」をやっている=それがウリになるからすぐに探せるんじゃないかなあ? >>810 コンピュータサイエンス的にはそんなのはない=シェルスクリプト作る人も、そんな目新しいことをわざわざしないだろうとしか思えんな、いくらそう言っても
824 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 20:14:25.67 ID:A9ow2usS.net] >>811 0.1+0.2が0.3にならなくてもいいよっていう業界を教えてくれ
825 名前:デフォルトの名無しさん [2019/10/03(木) 20:20:38.23 ID:gitagY/F.net] 適当なところで丸めりゃ良いんだからいいじゃねえか
826 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 20:23:06.87 ID:Fw9k5QN4.net] 少数なんて大体でしかないなんて常識だと思ってたのにな。少数使わないでも結局できたりするので、また、固定少数でも結局工夫が必要なのには変わりないので なんでそんなに少数の正しさに拘っているのだか、どういう業界でそういうのをしかもスクリプトオンリーで書かなきゃならないって想像できないな
827 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 20:30:23.62 ID:KR7C+a5e.net] >>813 必要なら用途に合うもん使えよ
828 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 23:39:56.70 ID:5pSilKMJ.net] 気が付いたら少数を使うことがほとんどなくなった 利子の計算ぐらいだが、これは何桁で計算を打ち切るか あらかじめ決めておく。安易に double とか使わない
829 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 23:43:58.79 ID:6kVVAM38.net] 簡単なシェルスクリプトしか書けんが何が覚えとけって言語ある? s以外のsedの機能をようやく覚えたけどコマンドは文字列操作系で手一杯だわ やっぱりperlの呪文覚えるしかないか
830 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 23:49:00.65 ID:wbZFe5vy.net] パイプが強烈だから文字列処理に強い perl でしょ オブジェクト指向はいらない
831 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 00:41:14.19 ID:jIZSSFYe.net] >>818 JavaScript
832 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 00:43:47.35 ID:jIZSSFYe.net] >>817 それな。何桁で計算を打ち切るだと、どこで誤差が出るか想定しやすいが doubleとかだと、桁数小さくても誤差が出るから、想定しづらいんだよね。 シェルスクリプトは型が文字列しか無いんだから、 内部の都合である数値型には影響されてほしくないな
833 名前:デフォルトの名無しさん [2019/10/04(金) 01:20:38.52 ID:5l5U7bxj.net] >>812 文字コードってのは文字に番号を割り振って取り扱いますよ、という概念。 浮動小数点も一緒で、有限の長さの小数を、小数点の位置を自由にすること (仮数部と基数部で表現する)ことで表しますよって概念。 各ベンダーが独自に実装したら不便極まりないから文字コードにおけるUnicode(とかUTF-8)と同様IEEE754という標準がある。 浮動小数点演算、と言ったときにそれは一概にIEEE754内部表現を用いた演算とはならない。 https://ja.wikipedia.org/wiki/任意精度演算 の方式の中にはIEEE754でない浮動小数点表現を取り扱ってるものだってあるだろう。 BCDで小数が扱えるライブラリだってそう言うのが多いと思うよ。 IEEE754の仕様の浮動小数点演算で十分な場合は、CPUに便利命令が用意されてて1桁ずつ計算とかしなくても 一発で計算が求まるからIEEE754の浮動小数点は使われている、というだけでしょ。 浮動小数点っていう大きい概念がどういったものかってのと、IEEE754はその概念を実現するための一例でしかないってのを、 Wikipediaなり読み込んで理解したほうが良いと思うよ。 ほんと、文字コードとUTF-8は同じものだ、って言ってるぐらいトンチンカンだから
834 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 01:34:09.77 ID:N11Kz3K2.net] >>813 セブンイレブンとか
835 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 01:44:25.75 ID:eSKeLXlH.net] >>818 1-liner、パイプ、CSV・テキスト処理、クローラーなら、可読性が高い、Ruby ! Perl のような謎のような記号は少ない
836 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 03:06:51.70 ID:gCVTKDJQ.net] >>822 他のが無いというのではなく、実際に使われている多くはというのだよ 実際に使われているのはどれだけあるの?わざわざ使ってるのならそれは意味があるのだから、そうナニか書いてあってすぐにわかるだろうという。例えばbcのように https://ja.wikipedia.org/wiki/IEEE_754 多くのプロセッサなどの〜 から書いてある通り。Javaがそうでないように書いてあるが、 https://www.ibm.com/developerworks/jp/java/library/j-jtp0114/index.html 同様に、java.math.BigDecimal が提供する任意精度の10進数もアプリケーションで使用されることは少ないため、開発者に無視されているケースがほとんどです しかし整数を中心としたプログラムに、突如、整数以外の表現が出てくることがあります。たとえば、JDBCではSQLDECIMAL 列の優先変換形式としてBigDecimal が使用されます なんてある意味それを表しすぎなくらい(まあ、ここは作る側ではなく使う側を言ってるけど) CPUに便利命令ってFPUに対するのこと?一発で計算が決まるからという簡単だからとかじゃなくて、FPUがあるのはハードで支援用意しないとそもそも浮動小数点は重い演算だからなんだけど >文字コードとUTF-8は同じものだ、って言ってるぐらい いや、言ってないけど、なにか思い込みが激しいね。IEEEが利用されないのも普通という考え方もそうだが
837 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 03:13:49.05 ID:gCVTKDJQ.net] >>825 >Javaがそうでないように書いてあるが ああ、違ったしつれい。IEEE 754 を必須か 使ってないってどれだ?どういう理由でという思いがあって、おおと思ったんだけど
838 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 04:25:45.39 ID:jIZSSFYe.net] もうさ、ハードで固定小数点数演算できるようにしたほうが良いんじゃね? 時代的にさ
839 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 05:02:19.85 ID:Lr70dHDq.net] BCDはCPUで支援してた(そういう命令があったが)ようだが、無くなったっぽいという BCDは速度的に有利な側面があるからわざわざそれ専用に用意しなくてもで無くなったかもしれない
840 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 07:56:41.21 ID:sZOtDaP2.net] >>827 お前さんがこだわるほど他の人は必要だと思ってない。あったら便利なケースもあるかも知れんがコストなどに見合わないから誰もやらない。
841 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 08:55:49.66 ID:UTOwlhyp.net] 消費税の話もあるし、固定小数点は重要だよ
842 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 11:44:19.51 ID:VMw2vpri.net] 固定小数点演算なんて整数演算と同等だからわざわざハードで実装しなくても問題ない
843 名前:デフォルトの名無しさん [2019/10/04(金) 14:32:11.23 ID:hcjI0QEW.net] >>818 そのままPerl覚えれば良い。 というのは、昔からあってあちこちで使われており、だいたいの Linux distribution はデフォルトでインストールされるような言語であるため。 インストールや環境整備で悩まなくて済む。後からモジュールを追加するとしても最初からrpmファイルがあったり、なくてもCPANを利用して簡単にインストールできる。 歴史が長く昔から使われて来たのでモジュールも沢山あり、またそれを解説しているサイトも多い。
844 名前:デフォルトの名無しさん [2019/10/04(金) 14:36:19.79 ID:hcjI0QEW.net] >>824 知らない言語を見ればどれも謎の記号だらけに見えるとは思うけどね。 まあでもPerlは確かに多いかな。なるべく使わないようにも書けるが。
845 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 14:37:02.99 ID:5wfXTPgW.net] alpine linuxでperllインストールされてないんだが?
846 名前:デフォルトの名無しさん [2019/10/04(金) 14:42:01.29 ID:hcjI0QEW.net] >>831 そうそう。整数計算後に割って桁合わせすれば良い。
847 名前:デフォルトの名無しさん [2019/10/04(金) 14:42:43.80 ID:hcjI0QEW.net] >>834 そうか。まあそういうのもある。
848 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 14:43:52.73 ID:M3k51a5A.net] 必要ならインストールすれば良いだけだ
849 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 14:59:17.54 ID:5wfXTPgW.net] 余計なものに依存したくない
850 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 17:13:04.07 ID:/U6oHgYD.net] そりゃお前の趣味だからな perlを使いたいならインストールする 当たり前の話だよな
851 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:55:54.53 ID:a0HWEhLa.net] perlを使いたいわけじゃないからなぁ
852 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 22:57:45.34 ID:eSKeLXlH.net] Perl, Python2・3 は最初から、入っているけど、 Ruby も、apt で、簡単にインストールできる ただし、Ruby 2.3 〜 2.6 で、プログラマーが、新しめの書き方をしていた場合に、 古いバージョンで動かないことがあるかも
853 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 09:16:44.91 ID:XBuBF2Rc.net] 全員がsudo権限あるわけじゃないしな・・・
854 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 09:44:40.51 ID:462kqzf/.net] perlなんて普通に入ってるからな Solaris、AIX、HP-UX、FreeBSD、Ubuntu、Centos、Redhat、Fedora 俺が触ってきたシステムではデフォルトで入ってたな 入ってない方が少数派だろ
855 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 11:20:12.25 ID:NnE09bAt.net] 少数派だが入ってない
856 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 11:24:56.60 ID:kChpVj98.net] 所属する研究室のMFにも入ってねーな。 Bシェルとかは(もちろん)入ってるけど そういう点で言えばPOSIX準拠のシェルがあるようなシステムにはPerlも入っていて PerlもないようなシステムにはPOSIX準拠シェルもないのかも知れんw
857 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:03:22.79 ID:NnE09bAt.net] だからAlpine linuxにはPOSIX準拠のシェルは入っているが Perlは入ってないんだって。 いい加減Perl依存やめようぜw
858 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:15:46.78 ID:rthNV3zo.net] 俺達もそろそろPOSIX汚染から脱却しようぜ
859 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:17:46.00 ID:NnE09bAt.net] >>847 じゃあ言い出しっぺのあなたから、POSIXが含まれてる LinuxやBSDやUnixやMacやWindowsを使うのをやめてください
860 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:21:19.21 ID:rthNV3zo.net] そもそも使ってないし
861 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:28:35.75 ID:NnE09bAt.net] サーバー側で使われてる
862 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:38:20.58 ID:462kqzf/.net] 相変わらずPOSIX原理主義者が張り付いてるんだな 日本は信教の自由はあるが強要するのは犯罪だ 他人を巻き込まないで1人でやってろよ
863 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 12:54:03.04 ID:NnE09bAt.net] だからPOSIX原理主義じゃないってw Alpineはbusybox使ってるからPOSIX未満なんだよ
864 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 13:05:31.69 ID:462kqzf/.net] お前はperl使いたくないんだろ? お前の自由だし好きにすればいい それを他人に押し付けるなと言っている 俺は普通にperlを使う 俺の自由だし好きにする 以上
865 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 13:12:15.17 ID:rthNV3zo.net] ∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ. 終 了 │ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ε3 ゛゛'゛'゛
866 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 13:16:18.11 ID:NnE09bAt.net] 誰もPerl使うなって言ってないだろ。 Perlが入ってない環境があるという 事実を言ってるんだが
867 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 14:00:34.35 ID:mC4FM69a.net] >>845 そのミッドフィールダーってなに?
868 名前:デフォルトの名無しさん [2019/10/06(日) 14:56:55.93 ID:VRfDnOhz.net] マネーフォワードだろ。
869 名前:デフォルトの名無しさん [2019/10/06(日) 17:41:58.00 ID:3lXqNGxa.net] 容量削減のためにPerlだけ抜くのも変だしそれ目的なら他のも入ってないのでは?
870 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 21:01:12.68 ID:TprJMO+0.net] まぁないものどうこう言っても始まらない ただwin のiE6とかのようにubuntu以外は淘汰されていくだろうから 最終的には問題ないんじゃない?
871 名前:デフォルトの名無しさん [2019/10/06(日) 21:15:53.96 ID:/W6lnfS0.net] Linuxはdistributionごとに色々目的が違うからPerl入ってないのがあっても特に不思議はない。 AndroidのベースのLinuxにも入ってないし、普通はそこでは必要とされない。
872 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 21:31:35.20 ID:1e7RWsdc.net] AndroidをLinuxとして使ってるのはどれだけいるのかと
873 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 22:18:30.79 ID:+aq+gJyQ.net] それ向けの端末エミュレータとかシェルスクリプト編集実行とかは結構種類あるけどね 割合は少ないだろうね
874 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 02:35:02.37 ID:qQU+qyu9.net] そういう人はperlも必要なら入れるな。perlに限らず
875 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 08:39:27.35 ID:4YPUQoiH.net] >>818 Python やっとけ。 perl は成仏させろ
876 名前:デフォルトの名無しさん [2019/10/07(月) 12:58:26.99 ID:lSqRbxbA.net] PerlはCの如くしぶとく残ってしまうと思うなあ。
877 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 14:23:04.89 ID:MItW4Ls8.net] sedやawkを忘れたんで代わりにperlを使うことが結構ある
878 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 15:51:12.82 ID:Wc5EJs/z.net] perl -peをsed代わりに使ってるだけでperl自体には興味ないや 正規表現しか出番ないし使う機会がないんだよね awkとかgrepとかどうせ他のコマンドも
879 名前:覚えなきゃならんし [] [ここ壊れてます]
880 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 14:32:15.36 ID:C04IGCd6.net] >>865 残ることは残るだろうけど、誰からも見捨てられてる状態で生き延びていても学ぶ価値はない。 プログラミング言語人気トップ8、過去15年間で安定 - 例外はPython 2019/10/07 14:16 後藤大地 https://news.mynavi.jp/article/20191007-905781/ TIOBE Softwareから、2019年10月のTIOBE Programming Community Index (PCI)が公開された。 TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題に なっているかをインデックス化したもの。(中略) TIOBE Softwareは発表の中で、毎年新たなプログラミング言語が登場しているものの、TIOBE Programming Community Indexのトップ8は過去15年間でほとんど変化していないと説明した。 Perlが消えてPythonに入れ替わったことや、Objective-Cが消えてSwiftに替わったというのが大きな 例外で、それ以外に大きな変動はないと指摘している。 ただし、プログラミング言語の分野に関してはいくつかの傾向があるとして、その例としてPHPやPerlから Pythonへ移っていること、新しいプログラミング言語としてDart、Scala、Lua、Rust、Kotlin、TypeScript などが人気上昇の渦中にあることなどを説明している。 10月TIOBE Programming Community Index / 円グラフ https://news.mynavi.jp/article/20191007-905781/images/001.jpg
881 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 15:00:13.27 ID:dg9qT1Hg.net] Perlはsedやawkと同じ位置で見ないとだめだよ シェルスクリプトを書くときにsedやawkのように使う道具のひとつ もちろんシェルスクリプトをまるごとPerlのスクリプトに置き換えてもいいけどそれは別の話 Perlを排除するのは武器を一つ捨てるようなもので損してるよ
882 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 15:03:58.28 ID:4CpPhkv4.net] 汎用言語としてはpython の時代に移ったかもしれないが 文字処理言語としてはいまだ現役
883 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 15:16:45.62 ID:wc9EJfFY.net] >>869 と言ってもお前、sedやawkが使えないから perlを使ってるだけやん。 お前の問題であって、perlである必要ないやん
884 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 15:49:08.88 ID:dg9qT1Hg.net] 俺当然sedもawkも使えるんだけど? awkで複雑になる処理をPerlで可読性高く楽に書いてるってだけ あんたも使える道具をうまく選べばいいんでPerlを知らなくても気にするな
885 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 16:39:54.73 ID:9VgyN7XE.net] 「Perlの方が楽に書ける」なんていうのは個人の嗜好に依存してて,ほとんど無根拠に近い。 もしPerlの「素晴しさ」とやらを報しめたいのなら,もっと客観的な事実――導入率・実績云々――を提示したほうがいいよ。 尤も,俺に言わせればAWKのほうが〜Perlのほうが〜なんていう議論とも呼べない喧嘩それ自体くだらねぇけどな
886 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 17:07:54.66 ID:uaD7+k1O.net] >>872 sed もawk も使えるならPython を使えばいいじゃん。 お前がPythonを使えないだけだろ。
887 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 17:13:16.90 ID:gh1TIWVl.net] python使ってわざわざ長いコード書いてどうするの? sed -e 's/ABC/XYZ/' file1.txt python -c 'import sys,re; [print(re.sub("ABC","XYZ",l,1),end="") for l in sys.stdin]'
888 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 18:40:06.69 ID:4CpPhkv4.net] gnu sed なら -e すら省けるんだよな
889 名前:デフォルトの名無しさん [2019/10/08(火) 18:40:15.32 ID:g
] [ここ壊れてます]
890 名前:O+Oxfwr.net mailto: こうして宗教戦争が始まったのです。 [] [ここ壊れてます]
891 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 19:07:13.65 ID:/hvysQLZ.net] pythonはワンラインにはあまり向かんのは同意。 フリーフォーマットじゃないんで当たり前といえば当たり前か。
892 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 19:30:38.22 ID:vS76WaY3.net] 宗教戦争は自分の信じるものが正しく、それ以外は認めないという非寛容が原因で始まる
893 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 02:18:53.91 ID:CaMm18My.net] python ワンライナーに挑戦 〜 初心者のお勉強 m(_ _)m - Qiita https://qiita.com/wyamamo/items/667c79db7edbaa9a46a7 闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita https://qiita.com/cocuh/items/37bfdc0f24750127e7d3 杓子定規にするからこうなる 知恵比べはまた別の課題だろうに
894 名前:デフォルトの名無しさん [2019/10/11(金) 19:00:05.85 ID:QtmRuluN.net] case $value in *-*=*-*) esac こんなふうに、*が複数ある場合の動きとかちゃんと仕様化されてるの どのシェルでも同じように動く?
895 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 19:51:09.99 ID:5TKzffM3.net] 「されてるの?」 なのか 「されてるの(だ)」 なのか。
896 名前:デフォルトの名無しさん [2019/10/11(金) 22:19:25.99 ID:EZwTHuUV.net] >>881 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13_02
897 名前:デフォルトの名無しさん [2019/10/12(Sat) 11:56:42 ID:6fabclhr.net] >>883 意味がわからん abbb 、という文字に対して、a*b はマッチするのが正しいの? aに続く残りのbは*で全部消費されるんじゃないの? $ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c) echo ok; esac' $ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c) echo ok; esac' $ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c*b*c) echo ok; esac' すべてokってでる どういうアルゴリズムなのかわからない
898 名前:デフォルトの名無しさん mailto:sage [2019/10/12(土) 13:05:32.76 ID:19ZHiYan.net] Perlの正規表現なら最長マッチがデフォ
899 名前:デフォルトの名無しさん [2019/10/12(Sat) 17:15:42 ID:1KIHwFcK.net] IPアドレスもgreedyが基本だな。
900 名前: mailto:sage [2019/10/13(Sun) 14:15:24 ID:wtTHifIn.net] ワイルドカードもだよね
901 名前: mailto:sage [2019/10/15(Tue) 20:13:38 ID:tkdZ32xn.net] >>884 感覚的に分かりやすい https://media.theync.com/videos/6/9/0/4/8/6904895d700f71ce3e9.mp4
902 名前:デフォルトの名無しさん [2019/10/16(Wed) 03:31:59 ID:Pvq8peJ9.net] >>888 グロ
903 名前:デフォルトの名無しさん [2019/10/16(水) 08:08:38.68 ID:9/jaba51.net] 変数名を変数で指定できるのは欠陥じゃねえ
904 名前:デフォルトの名無しさん [2019/10/17(木) 13:11:40.29 ID:huR1Dm0j.net] はー、すげー。yashの実装に感動した getopts "ab" OPT -ab echo "$OPT $OPTIND" # => a 1:2 getopts "ab" OPT -ab echo "$OPT $OPTIND" # => b 1:3 getopts "ab" OPT -ab # exit status = 1 echo "$OPT $OPTIND" # => ? 2
905 名前: mailto:sage [2019/10/17(Thu) 16:55:00 ID:PM8kIYTO.net] if ls "*.txt" > /dev/null 2>&1 then echo "OK" else echo "NG" fi まったくうまくいかない なぜ単なるファイルの存在確認だけにこんな苦労するのか
906 名前: mailto:sage [2019/10/17(Thu) 17:04:24 ID:z1/RyPhF.net] ファイルの存在確認なら、-fを使えばいいだろ?
907 名前: mailto:sage [2019/10/17(Thu) 17:05:16 ID:e7ZwLQTq.net] # # ls *txt && echo ok || echo bad ls: '*txt' にアクセスできません: No such file or directory bad # # touch foo.txt # # ls *txt && echo ok || echo bad foo.txt ok こんな要領か?
908 名前: mailto:sage [2019/10/17(Thu) 17:05:47 ID:z1/RyPhF.net] あ、ディレクトリに *.txt があるかどうかってことか?
909 名前: mailto:sage [2019/10/17(Thu) 17:08:50 ID:PM8kIYTO.net] >>893 ところがワイルドカード使うと途端に何も引っかからなくなる
910 名前: mailto:sage [2019/10/17(Thu) 17:09:26 ID:PM8kIYTO.net] >>895 そうです
911 名前: mailto:sage [2019/10/17(Thu) 17:10:05 ID:z1/RyPhF.net] getopts vs getopt だけどさ、 BSDにおいてgetoptのメリットって何? BSD版のgetoptはロングオプションに対応してないし、 引数にスペースが入ったらうまく行かないし 使い勝手悪いと思うんだが。 もしかして最初に作られたのがgetoptで それを改良してgetoptsがシェルビルトインとして作られた。 (その後GNU版getoptが改良され、getoptsよりも便利になった) という流れだったりするの?
912 名前: mailto:sage [2019/10/17(Thu) 17:10:16 ID:e7ZwLQTq.net] 普通のプログラミング言語と違って シェルスクリプトはブーリアンの分岐は可能なら if else 使うよりも && || が見やすく良いと思う
913 名前: mailto:sage [2019/10/17(Thu) 17:12:52 ID:PM8kIYTO.net] >>894,899 いけた 分岐後の処理も大したことしないしこれでやってみようと思う?
914 名前: mailto:sage [2019/10/17(Thu) 17:13:24 ID:z1/RyPhF.net] >>896 アスタリスクを使うと、シェルが解釈して、 例えば、 ls * だと、 ls file1 file2 file3 file4 って実行したのと同じことになるんだぞ。 lsコマンドの中からはアスタリスクが使われてるかどうかなんてわからない。 そしてダブルクォートで括ると、lsコマンドの中から引数は "*" という文字列が渡されたようになるんだよ。
915 名前: mailto:sage [2019/10/17(Thu) 17:14:21 ID:ieavKq01.net] うまくいかなかった原因分かった?
916 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 17:19:49.73 ID:z1/RyPhF.net] >>899 それだめ。 shellcheck使ってみ、エラーになる。 shellcheck において && || みたいな三項演算子風な使い方は func && VALUE=ok || VALUE=ng という書き方(変数代入)のみ認められる。 func && foo || bar は認められない。 なぜかと言うと、 1. func が 正常終了して 2. foo が 異常終了すると 3. bar が 実行されるから 変数代入に限れば必ずVALUE=okは正常終了するから、 この書き方に限って許されてる。 だから、一応fooが必ず正常終了するものであれば、使えなくはないけど 静的解析ではそれを知ることが不可能なので、shellcheckはエラーになる。 あともう一つ、barが異常終了したとき、&& || だと $?はエラーになるが、 ifで書けばfi終了後、$? は正常終了になってるという違いもある。 だからset -eでの挙動が変わる。
917 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 17:21:53.83 ID:z1/RyPhF.net] もちろん、&& 単独、もしくは || 単独で 使うならば問題ない。 func && foo とか func || bar ならOK
918 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 17:26:43.45 ID:PM8kIYTO.net] 今度は ls "$dir/tmp/*.txt" みたいなことしたらアクセスできませんみたいなことを言われた >>901 なるほど >>902 多分"*.txt"ファイルにアクセスしようとしてできないって言われたことが原因? でもなぜかls *.txtみたいに、ファイル直だとイケる
919 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 17:33:24.48 ID:z1/RyPhF.net] あー、やっぱりそうなんや https://en.wikipedia.org/wiki/Getopt https://en.wikipedia.org/wiki/Getopts getoptは1980年頃つくられた。初期のgetoptは低機能 その改良として getopts が1986年にBourne shellに実装されたらしい。 その後、getopts (Solaris) と getopt (GNU) それぞれ違うコマンドで ロングオプションがサポートされ どちらでもないBSD(macOS含む)では、従来どおり 低機能な getopt と それを少し改良した getopts があるが どちらもロングオプションはサポートしてないと
920 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 17:37:12.84 ID:z1/RyPhF.net] >>905 だからダブルクォートで括るからいかんのや ls "$dir/tmp/" * ".txt" これが正解(スペースは目立たせるために入れただけ) この書き方ダサいよなw ちなみに古いシェル(poshだっけ?)でこれがうまく行かない バグがあるのだが、まあ誰も気にしないわなw
921 名前: mailto:sage [2019/10/17(Thu) 17:40:52 ID:z1/RyPhF.net] getopts (Solaris) でロングオプションがサポートされたってシェルなんだ?って思ったら、 Solarisでは/usr/bin/getoptsが存在するのか・・・ 紛らわしいな https://docs.oracle.com/cd/E26924_01/html/E29112/getopts-1.html
922 名前: mailto:sage [2019/10/17(Thu) 17:43:27 ID:z1/RyPhF.net] あ、いや /usr/bin/getopts もあるにはあるが、libcのgetopt()実装が拡張されたから それを使ってるBourne Shellでも使えるようになったのか > getopts (Solaris enhanced) > As a result, this new feature was also available in the built-in command getopts of the Bourne Shell.
923 名前: mailto:sage [2019/10/17(Thu) 17:47:11 ID:PM8kIYTO.net] >>907 うおおできた! ls "$dir/tmp/"*".txt" && echo "ok" || echo "ng" みたいな感じにした (txtファイルがひとつもないときエラー出るけど!無視) ?
924 名前:デフォルトの名無しさん [2019/10/17(Thu) 19:06:38 ID:yPX5iNuE.net] ジェルスクリプトってバッドノウハウの塊なんだな…
925 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 21:18:21.03 ID:CFrrzXLD.net] TeXで書かれた人工知能みて,「バッドノウハウ」って言ってるみたいw
926 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 21:23:39.68 ID:1JFOpLrO.net] GLOB展開と""内での文字列展開は別物で""内での文字列展開にGLOBは含まれないというだけだけどな
927 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 22:15:54.16 ID:yIl6cqO6.net] マニュアルにかっちり書いてあるんだけどな 読み解くのは確かに能力が必要だが
928 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 00:25:26.47 ID:DhnYyybT.net] >>892-897 find . -type f -name "*.txt" | wc -l -type f は、ファイルのみ。 wc -l は、行数を数える。無ければ、0
929 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 00:33:26.40 ID:l6dCA2lX.net] $ mkdir tmp && cd tmp $ touch $'a\nb.txt' $ find . -type f -name '*.txt' | wc -l 2
930 名前: mailto:sage [2019/10/18(Fri) 00:51:30 ID:DhnYyybT.net] 相対パスなら、-path で、カレントディレクトリからの相対パスで指定する find . -type f -path "./test/*.rb" | wc -l
931 名前: mailto:sage [2019/10/18(Fri) 02:59:20 ID:Shj9H2hw.net] なるほろ bash によるオプション解析 - Qiita https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb bashのワイルドカード展開は該当するファイルが無いと*が展開されずに残る - Qiita https://qiita.com/anqooqie/items/a2b607fe984ec982fa21 manはマニュアルだがman自体に取説が必要な皮肉 man manを読む時点で骨が折れるからしゃーない
932 名前:915 mailto:sage [2019/10/18(金) 04:58:51.55 ID:DhnYyybT.net] Ruby では、これでカレントディレクトリの該当ファイル数がわかる。 無ければ、0 ruby -e 'puts Dir.glob( "*.txt" ).length'
933 名前: mailto:sage [2019/10/18(Fri) 09:56:55 ID:dNt3vJtH.net] /bin/ls -1d *.txt 2> /dev/null | wc -l
934 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 11:02:02.61 ID:lmpJOwiE.net] find使うのは有りだと思うがmaxdepthとquitをつけたほうが良い if test -n "$(find . -maxdepth 1 -name "*.txt" -print -quit)"; then echo "OK" else echo "NG" fi
935 名前: mailto:sage [2019/10/18(Fri) 11:55:18 ID:O8T9zLoM.net] >>921 ただしそれらは POSIX 準拠ではない https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
936 名前:デフォルトの名無しさん [2019/10/18(Fri) 13:39:28 ID:+f5J2l87.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
937 名前: mailto:sage [2019/10/18(Fri) 14:04:15 ID:e+8RgQym.net] >>918 暇なときに man と bash の man をちゃんと読み込むことをお勧めする 全部理解するのは確かに大変だが、こんな機能があるということだけ 覚えておいて、現実の問題に直面した時に詳細を再検索するのが 実用的。bash だけの問題ではないが。
938 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:14:29.88 ID:m9M+BHHc.net] bashのmanはメンテされてないんじゃね?
939 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:19:16.34 ID:1h1F7NR4.net] 日本語版がメンテナンスされてない(もしくは遅い)だけだよ
940 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:34:03.00 ID:+f1cBD8l.net] 日本語版の記述が少なくて英語版の方だけびっしりとか実にマニュアルらしい
941 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 13:26:03.97 ID:9TTj0TwZ.net] 近頃は無料で web 上で使える翻訳ソフトの質も上がっているし 頑張って読んでくれ。
942 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 19:06:51.24 ID:VYVT60v2.net] 翻訳めっちゃハッテンしてきてるよね
943 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 20:14:11.99 ID:jibveSnU.net] ウホッ じゃなくて なんだ infoとかそっちしかハッテンしてないとかあるじゃん
944 名前:デフォルトの名無しさん mailto:sage [2019/10/20(日) 17:43:31.69 ID:Tm15VeOJ.net] まあ、確かに sed の s コマンドのオプションは man にも入れてほしかった。 オプション使えなくなったのかと思ったじゃないか…
945 名前: mailto:sage [2019/10/20(日) 23:14:32 ID:n5s+FSXq.net] 日本語版だけスカスカと言えばlocate
946 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 17:13:45.45 ID:mT54cHzD.net] まあ裏を返せばそれだけ国際標準から離れていないってことよね。 ar.localeとか酷い……
947 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 21:16:47 ID:SCSOJkPH.net] あるユーザー(Aとする)が、他のユーザー(Bとする)にのみWrite権限があるファイルを削除するような作業を自動化したいです。 当然そのままでは削除できないので、AからRootに切り替わり、ファイルを削除した後、Rootを抜けてAに戻るというBashスクリプトを作成しようとしています。 AはSudoが実行できない環境で、Expectコマンドもありません。Rootのパスワードはわかっており、平文でシェルスクリプト内に書き込んでも構いません(使用者が数人で、かつ外部に接続できないため。なのでセキュリティの問題は今回は無視)。 このような状態で、どうにか目的を果たすスクリプトはかけますでしょうか。 OSはFedora10、新たにプログラムパッケージ等はインストールできません。 よろしくおねがいします。
948 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 21:41:04 ID:aSOXSPh+.net] すなおにrootで全部やれば良いんじゃね?
949 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:08:16.20 ID:/woRRfjw.net] >>934 そもそもAがファイルを消せるようにパーミッションが初めから設定されるようには出来ないの?
950 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:24:13 ID:Ol8k0rNq.net] >>934 ファイルを削除するだけの実行ファイルを作ってsetuidビット立てて所有者をBにするとかすればできないかな?
951 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:25:13 ID:Ol8k0rNq.net] 追記。シェルスクリプト自体にはsetuidは使えない。
952 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:52:13.48 ID:pvaospDZ.net] Fedora10って10年前のかっ su: must be run from a terminal にならんのだったらsuでいいんじゃないの。パスワード流すのは exec ででも
953 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 00:44:01 ID:7OkeLCGH.net] ディレクトリにwが付いてればファイルは消せるけどなあ
954 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 02:43:55 ID:T9lP8zyy.net] >>936 パーミッションは変えない方針でいきたいですね >>937 setuidという単語を初めて見たので、のちほど調べてみます。 >>939 su - <<EOF password EOF は試しましたが、ttyを経由しろ的なメッセージで怒られました 調べたところttyなしを許可する設定がsudorsにあるらしいですが、sudoは設定したくないため、できなそうです
955 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 09:04:44.04 ID:xSNqVMSD.net] >>941 # mkdir /dir # chown userA:groupA /dir # chmod 700 /dir # cp /bin/rm /dir/rmB # chown userB:groupB /dir/rmB # chmod 6755 /dir/rmB userA $ /dir/rmB /home/userB/file
956 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 10:51:03.29 ID:p4xpj08d.net] こんな文字列野中に含まれる数字を ゼロパディングしたいと思います "何とかって講義 第5回 何とか特集.mp3" まずは2桁でそろえてやりたいのですが grep "第[1-9]回" で一桁のものを引っ掛けて 前後をsedで除いて sed "s/.*第//g sed "s/回.*//g" ゼロ埋めはprintfで実現しようと思うのですが printf %02d $times もっとシンプルな方法は無いでしょうか?
957 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 10:52:23.81 ID:p4xpj08d.net] なお最終的な文字列の組み立てなおしは 数字の前後も抽出して3つを連結するつもりです
958 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 11:04:28.98 ID:+cbyszgy.net] perl5 が使えるなら echo "何とかって講義 第2345回 何とか特集.mp3" | perl -pe 's/第(\d+)回/ sprintf "第%06d回", $1/exm' 何とかって講義 第002345回 何とか特集.mp3
959 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 13:09:31.40 ID:QfoZv31s.net] $ echo "何とかって講義 第2345回 何とか特集.mp3" | sed -E 's/第([0-9]+)回/第000000\1回/; s/0*([0-9]{6})/\1/' 6桁揃えにしたければ最初に6個0を足して次に6桁のみ残す $ rename -n 's/\d+/sprintf("%06d",$&)/e' *.mp3 rename utilityが使えるならsprintfが使える
960 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 15:10:24.02 ID:W8s8s9Eh.net] perlもrenameもPOSIX規格外
961 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 15:18:54.31 ID:AwOtA+WM.net] みんな真偽値ってどうしてる?
962 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 15:21:29.60 ID:p4xpj08d.net] >>945-946 ありがとうございます perlは入っており期待通りに動作しました perlの方が高機能なのですが 環境を移したときにperlがあるか保証できないため sedでやろうと思います
963 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 15:23:02.88 ID:AwOtA+WM.net] FLAG=true or false ? FLAG=1 or 0 ? FLAG=1 or unset ? FLAG=1 or "" ? それ以外?
964 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 20:26:37.95 ID:2f71vpaR.net] alias FLAG true/alias FLAG false if FLAG; then
965 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 20:27:08.55 ID:2f71vpaR.net] でもBashだとファイル内では既定で使えない。
966 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 21:23:51.15 ID:CciDAIxr.net] >>952 面白いけど、サブシェルの中で変えられないから alias FLAG=true ( alias FLAG=false if FLAG; then echo true fi ) 出力 true
967 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 10:43:57.77 ID:oiOUCahJ.net] TRUE=$([ 0 = 0 ];echo $?) FALSE=$([ ! $TRUE ];echo $?) FLAG=$TRUE or $FALSE
968 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 10:57:17.22 ID:jQcWWJt3.net] サイトによってrenameの構文が違うけどコマンド自体が違うのな perl付属のprenameとutil-linux付属のrename.ulがあるとか alternativesで書き換えられてるんだからそら気付かんわ
969 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 17:48:17.61 ID:mthfJT/n.net] >>953 知らんかった。恥ずかしいw
970 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 17:49:17.77 ID:mthfJT/n.net] >>954 それってTRUE=0とするのと何が違うの?
971 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 18:07:25.18 ID:lp1ZwQII.net] >>956 サブシェルは関係ない。俺もちゃんと仕様読んだわけじゃないけど、 aliasは実行時じゃなくて、1単位ごとに → パース → 実行 の パース時に変換してる感じ そして1単位というのは、 alias FLAG=true alias FLAG=false; FLAG && echo true ↑これは一行で一単位、だからtrueと表示されてしまうし 関数とか、プロンプトから、func() { 改行 とかやると } 改行 するまで、ずっと行頭に > って表示されるだろ? あれが1単位。だから↓みたいなものもtrueって表示されてしまうんだよ alias FLAG=true func() { alias FLAG=false if FLAG; then echo true fi } func
972 名前:793 [2019/10/24(木) 18:35:35.72 ID:n545jbBX.net] >>795-797 時間が経ってしまいましたが、ありがとうございました "$()"の中の"はエスケープする必要があるのかどうか、とか、変数代入への挙動とか、そういう細かいところがよくわかってなかったです。
973 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 22:00:36.73 ID:mthfJT/n.net] >>958 あー。 aliasってたしか一つの構文解析のかなり初期段階で展開される筈だから, その一つの解析対象の内部で定義されているaliasは(当然)それ自身の解析結果には反映されんな。 このへんだろうか?? https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10
974 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 00:11:27.02 ID:6btPTvif.net] 次スレ シェルスクリプト総合 その32 https://mevius.5ch.net/test/read.cgi/tech/1571929725/
975 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 07:59:28.70 ID:6Bcci7V7.net] >>957 真は0、偽は0以外という値を意識する必要が無い (Cの真偽値は逆で紛らわしい) true/falseコマンドが使えない環境でも使える
976 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:17:19.52 ID:TUsRGFSK.net] >>962 true/falseがビルトインじゃないシェルは存在しない また、[ の結果はtrueなら0、falseなら1と決まっている
977 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 06:21:32 ID:0I+FrAtF.net] >>963 > true/falseがビルトインじゃないシェルは存在しない 今ならそう言えるだろうが、かつては存在した 外部コマンドのtrue/falseがその名残りだ > また、[ の結果はtrueなら0、falseなら1と決まっている 0は数値の0であってtrueではない trueを表現するのに0を使っているだけだ まあ真偽値を扱うならtrue/falseを使えってことだな
978 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 09:53:59.01 ID:Q5pTtErv.net] trueを表現するのに0を使っているというより、真偽に成功不成功をそのまま使ってるというだけだろ
979 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 10:32:17.69 ID:a0V3mxKP.net] >>964 > 今ならそう言えるだろうが、かつては存在した かつてとはいつで、どこの実装であるのか答えなさい また、現存しない物の話をしても意味はない そもそも [ が存在しない環境では使えない 外部コマンドの [ がその名残りだ
980 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 10:33:01.78 ID:swDBEFOl.net] 成功/不成功は終了ステータスであって真偽値ではない
981 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 10:37:22.98 ID:3fttRo5u.net] え、まさか、 hoge && FLAG=$TRUE || FLAG=$FALSE : : if [ "$FLAG" -eq "$TRUE" ] then ・・・ if [ "$FLAG" -eq "$FALSE" ] then ・・・ とか書くつもり・・・?
982 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 10:56:36.80 ID:0I+FrAtF.net] >>968 終了ステータスを真偽値で判断するのか 珍しいやつだなw
983 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:14:58.17 ID:3fttRo5u.net] >>969 変数に真偽値を入れるって話で 終了ステータスを入れる馬鹿を皮肉ってるだけだろw
984 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:16:54.58 ID:Q5pTtErv.net] while true do や、 FLAG=true or FLAG=false if $FLAG; then 真偽に成功不成功をそのままは、なんて書きたかっただけだろ、そうの方が見た目がいいしな なんでそんなに拘っているんだか
985 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:21:27.44 ID:3fttRo5u.net] つーか、いいかげんにしろよ。 真偽値の値を何にするかって話だろ 誰も真偽値をどうやって生成するかの話なんかしてねーよ
986 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:22:36.82 ID:3fttRo5u.net] いつものやつ言っとくわ >>971 /\___/\ / / ヽ ::: \ | (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ,,ノ(、_, )ヽ、,, | < まーたはじまった | ,;‐=‐ヽ .:::::| \_______ \ `ニニ´ .:::/ /`ー‐--‐‐―´´\
987 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:23:54.27 ID:Q5pTtErv.net] FLAG=true or false FLAG=1 or 0 etc なんでも好きにすればいいだろ true/falseコマンドを使った方が見た目簡潔じゃないかと思うがな、個人的に。使わんけど お前がいいかげんにしろよw
988 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:29:02.54 ID:3fttRo5u.net] 質問が出てる時点で、意図がわからないコードってことなんだがw 957 名前:デフォルトの名無しさん[sage] 投稿日:2019/10/24(木) 17:49:17.77 ID:mthfJT/n [2/3] >>954 それってTRUE=0とするのと何が違うの? それに>>954 ののコードは、set -eで正しく動かない TRUE=$([ 0 = 0 ];echo $?) FALSE=$([ ! $TRUE ];echo $?) 意図が不明確なコードを書いて、バグを入れるのは アホでしか無いよ
989 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:32:55.31 ID:Q5pTtErv.net] 俺は他alias使ったのやのその話題は、なにをわざわざ凝ったことしようとしてるのか意図不明で趣味なんだろなとしか思ってない
990 名前:デフォルトの名無しさん [2019/10/26(土) 11:33:38.63 ID:T/HAOzs9.net] やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
991 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:34:25.41 ID:3fttRo5u.net] >>976 趣味(実用的ではないネタコード)に、正当っぽい理由をつけるなって話だ
992 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:36:44.02 ID:Q5pTtErv.net] ただの雑談だろ あれを強制するなりしているわけでもないのに、なにをそう否定してんだか そんなヤツがリアルで一緒に仕事するなら思いっきりくそ叩くがなw
993 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:37:51.16 ID:3fttRo5u.net] あとC言語の世界しか知らんようだから言っておくと、rubyは0も1もtrueな シェルスクリプトは反対で0がtrueで1がfalseなんだ、それ以外の回答はない!ってのは ちょっと考えが浅いんじゃないですかねぇw osishow3.hateblo.jp/entry/2017/04/20/235500 nil is false false is false 0 is true 1 is true
994 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:39:18.03 ID:Q5pTtErv.net] 何をひとりで妄想に走っているんだか だれか「いいかげんにしろ」とか言ってなかったか?w
995 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:42:23.29 ID:3fttRo5u.net] 俺に突っかかってきてないで、シェルスクリプトの話題をしたら?
996 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:43:40.40 ID:Q5pTtErv.net] よくいうよw
997 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:47:29.21 ID:3fttRo5u.net] そりゃいうだろ、いきなりシェルスクリプトと関係ない 「俺」の話を始めるんだからw
998 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:50:09.04 ID:Q5pTtErv.net] 言ったことに対してはそりゃ言うだろう。お前がわざわざ言ったんだから そんなのが無くてもいいのに。お前だった元々のやつを「アホ」呼ばわりしてるじゃん
999 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 15:54:12.94 ID:0I+FrAtF.net] >>975 set +e TRUE=$([ 0 = 0 ];echo $?) FALSE=$([ ! $TRUE ];echo $?) set -e 動かんと言ってる方がアホだと思う
1000 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:04:47.31 ID:+M+pJ73c.net] set -eで正しく動かない ↓ set +eと書いて動くと主張。赤っ恥w
1001 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:15:33.38 ID:0I+FrAtF.net] 逃げ方がチョン臭くてキモい
1002 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:17:36.78 ID:+M+pJ73c.net] しかも、最初の状態が set +e だったら set -e に状態が変わってしまうというクソコード 汎用性がない
1003 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:20:27.41 ID:+M+pJ73c.net] true / false を使えばいいのに、[ が入ってない環境を考慮せずに、 true / false が入ってないかもしれないから [ を使ったと言う無能ぶりw
1004 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:22:55.60 ID:0I+FrAtF.net] 最初にset -eするとルール化するだけ いちゃもんつけるの得意だな
1005 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:24:16.70 ID:0I+FrAtF.net] []やtestが使えないシェル教えてくれよ
1006 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:25:06.04 ID:+M+pJ73c.net] TRUEの反対だからfalseというが、 FALSEの反対もfalseになってると気づいてなくて そもそもシェルスクリプトの仕様をわかってないw [ 0 = 0 ]; echo $? # => 0 [ ! 0 ]; echo $? # => 1 [ ! 1 ]; echo $? # => 1
1007 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:27:23.30 ID:+M+pJ73c.net] >>992 上の方で /bin/true, /bin/false コマンドがあるんだから true, false が使えないシェルがあるはずだって主張していたぞw その理屈で言えば [ コマンドもあるんだから、 [ が使えないシェルもあるってことになるんだがなw
1008 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:28:56.67 ID:+M+pJ73c.net] 更に言うなら TRUE=$([ 0 = 0 ];echo $?) FALSE=$([ ! $TRUE ];echo $?) これにサブシェルを使うのもアホらしいw
1009 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:29:21.39 ID:0I+FrAtF.net] >>994 cshのbuiltin調べてこい 分かったらすいませんって言えよw
1010 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:29:57.11 ID:+M+pJ73c.net] >>1 みろ csh/tcshでのシェルスクリプトは*まったく推奨しません*。
1011 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:30:08.87 ID:0I+FrAtF.net] あーいつものマウントとらないと死ぬ病気のやつか おだいじに
1012 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:30:30.62 ID:+M+pJ73c.net] >>1 じゃなくて>>2 だったな > ・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです)
1013 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 16:30:49.43 ID:+M+pJ73c.net] >>998 マウント取られて可愛そうwww
1014 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 76日 17時間 12分 59秒
1015 名前:1002 [Over 1000 Thread.net] 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログイン
1016 名前:はこちら ▼ https://login.5ch.net/login.php [] [ここ壊れてます]
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています