[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/03 20:17 / Filesize : 272 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その31



1 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:17:50.64 ID:L+B8OP2P.net]
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その30
https://mevius.5ch.net/test/read.cgi/tech/1561989867/

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要らないとか一言も書いてないのだが
なんか変な妄想にとらわれてる人なの?いつもの






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<272KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef