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

■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
シェルスクリプトに関する総合スレッドです。

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

シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
2020/09/23(水) 19:31:28.98ID:9Qi89m1Q
testでできることの話はもうしてないの。終わった話なの。
今はtestでできないことの話をしてるの。だから話を戻すなと言ってるの。
2020/09/23(水) 19:36:03.39ID:ORLEAcPg
>>455
ちゃんとレスを読もうか?>>449って書いてるだろ
rootで他のユーザでは

rootで他のユーザの場合ではをチェックする場合では
な。「rootで」って付けたのは余分だがそんなのするのはrootでしかないだろうという
2020/09/23(水) 19:46:19.51ID:9Qi89m1Q
>>457
あ、もしかしてお前、「自分以外には見れない」ことを
(シェルスクリプトで)チェックすることはありえないと思ってんの?w
sshがやってるんですが?
2020/09/23(水) 19:52:36.32ID:ORLEAcPg
なに言ってるの?sshのシェルスクリプトでやってるってどのシェルスクリプト?
2020/09/23(水) 19:55:44.26ID:9Qi89m1Q
>>459
どうもお前は話が理解できないようだから
数字で答えてくれ

あるファイルが「自分以外のユーザーから読み書きできるかどうか」を
確認したいことは

1. ありえる
2. ありえない
3. 想像力がない
4. 言ってることが難しすぎてわからない(笑)

レスするのは数字だけな。それ以外の言葉はいらんから(全部言い訳としてみなす)
2020/09/23(水) 20:04:40.84ID:ORLEAcPg
はあ...
答えるのもアホくさいが、>>449って書いてんだから 1 に決まってるだろ

>>449、また、読めなさそうなお前のために>>457って書いてんだろに
読めればそんなアホくさい問題を出さないだろうに(わざわざそんな何行もかけてw)

実はお前のなんか知らんが偉そうなw自説はダメなはずだぞ。なんででしょう?

(sshのシェルスクリプトでやってるってどのシェルスクリプト?ってのも答えてな、そのアホな質問にこんだけ答えてやったんだからw)>>459
>sshのシェルスクリプトでやってるってどのシェルスクリプト?

なんか制限を勝手に付けたが、いつもの自分の都合の良いように反論押さえ込むだけの馬鹿な言葉なので無視
2020/09/23(水) 20:09:20.35ID:ORLEAcPg
ああ、
あるユーザ=管理者権限がある=sudoが使える

一般ユーザはそんなことする必要もないしするべきでもないから、2 な
2020/09/23(水) 20:16:59.78ID:9Qi89m1Q
>>461
言い訳するな。数字だけ答えろ

「自分以外のユーザーから読み書きできるかどうか」をtestでは調べることができない

1. YES
2. NO
2020/09/23(水) 20:18:16.77ID:9Qi89m1Q
> 一般ユーザはそんなことする必要もないしするべきでもないから、2 な

うわーw

一般ユーザーが、自分以外はファイルにアクセスできないような
パーミッションになってるかを確認する必要はないって
いっちゃったよこいつwww
2020/09/23(水) 20:20:56.17ID:ORLEAcPg
答えたぞ。読めない読まないのは知らない
質問するのはいいが馬鹿な偉そうな素人のような態度での質問のしかたは辞めなさいw

言い訳でもなんでもいいから俺の質問にも応えてねw
sshのシェルスクリプトでやってるってどのシェルスクリプト?
実はお前のなんか知らんが偉そうなw自説はダメなはずだぞ。なんででしょう?
2020/09/23(水) 20:22:26.95ID:ORLEAcPg
>>464
逆にある場合を具体的に言ってみてほしいな
俺の言うことはあり得ないとそんなアホのように馬鹿にした表現するなら
2020/09/23(水) 20:22:42.48ID:9Qi89m1Q
> sshのシェルスクリプトでやってるってどのシェルスクリプト?

sshのシェルスクリプトでやってるなんて一言も言っていません。
自分の都合のいいように読み替えるのはやめろ
2020/09/23(水) 20:24:26.32ID:9Qi89m1Q
>>466
> 逆にある場合を具体的に言ってみてほしいな

こいつヤバイなぁw

ファイルに他人には秘密にして置かなければいけないような
パスワード等を保存したとしても、パーミッションが
問題ないかを確認したりしないって言っちゃってるよw

ドコモ口座とかこういうやつが原因なんだろうな
2020/09/23(水) 20:31:55.84ID:ORLEAcPg
>>467
なんだ
>あ、もしかしてお前、「自分以外には見れない」ことを
>(シェルスクリプトで)チェックすることはありえないと思ってんの?w
>sshがやってるんですが?
って、括弧付きでわざわざ シェルスクリプト って書いていて、続いて、sshって書いてるから、そんなのあるかと思った
sshが〜なんて、sshって別次元のある意味当たり前の話だからな

sshも作るときはパーミッションを設定するが、読み書きは読み書きできるかどうか(単なるopenできるかどうか)じゃないのかなあ、知らんけど

ともあれ、すっきりしたwから、どうも
2020/09/23(水) 20:34:44.76ID:ORLEAcPg
>>468
>ファイルに他人には秘密にして置かなければいけないような
>パスワード等を保存したとしても、パーミッションが
>問題ないかを確認したりしないって言っちゃってるよw

イミフすぎw
何でそれを管理者権限もない一般ユーザが他のユーザのそれをしなきゃならん??のだか?
何言ってるの??

なんか管理がむちゃくちゃなシステムを作ってそうなお前がやりそうだけどw
2020/09/23(水) 20:38:37.12ID:9Qi89m1Q
> 何でそれを管理者権限もない一般ユーザが他のユーザのそれをしなきゃならん??のだか?

こいつ理解力ゼロじゃねw
管理者(root)の話を持ってきたのはこいつだけど、
俺の話には管理者という登場人物は出てきていない

くり返し言うね。

「自分(=一般ユーザー)以外のユーザーから読み書きできるかどうか」を
(自分=一般ユーザーが)testでは調べることができない

この話をしていたという理解力はありますか?
2020/09/23(水) 20:39:34.10ID:9Qi89m1Q
もちろん俺は
「管理者権限もない一般ユーザが他のユーザのそれをしなきゃならん」
などと一言も言ってません。

こいつはいつも、自分の思い込みで発言を改ざんしています。
2020/09/23(水) 20:43:15.10ID:ORLEAcPg
だから既に答えたことを質問すんなって
ちゃんと管理してる(てかいたって当たり前の)環境では、「必要ない/すんな/あり得ない」よ、当たり前に

同じ質問繰り返してばかり堂々めぐりではなくて「逆にある場合を具体的に言ってみてほしいな」に応えた方が話は進むと思うぞw

あと、悪いが、
実はお前のなんか知らんが偉そうなw自説はダメなはずだぞ。なんででしょう?
も、よろしくw
2020/09/23(水) 20:43:52.75ID:9Qi89m1Q
>>469
こいつには、かっこの使い方も説明しないといかんのか(呆)

丸括弧
https://kotobank.jp/word/%E4%B8%B8%E6%8B%AC%E5%BC%A7-636089
文章表記中などで用いる( )の記号。補足説明や省略可能などを表すのに用いる。

「(シェルスクリプト)」は補足説明であり省略可能なんだから
重要な言葉じゃねーんだよ。はー、こいつ日本人じゃないだろw
2020/09/23(水) 20:45:12.45ID:9Qi89m1Q
>>473
お前に言っておく。

自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ

このように「自分以外が見れないことを確認する必要」はあるんだからな
2020/09/23(水) 20:47:29.66ID:ORLEAcPg
>>474
お前はいつも指摘の仕方が異常
お前自身ががその程度なのかもしれないがという話にかならんぞ

なに当たり前のことを言っているねん
それに、逆に補足するということはそれもある意味重要ということだぞ?別にどうでもいいなら補足もしないからな
2020/09/23(水) 20:51:39.81ID:9Qi89m1Q
重要なときには ”ダブルクォートで” とか「かぎかっこ」でくくるんだよアホw
2020/09/23(水) 20:52:38.90ID:ORLEAcPg
>>475
>自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ

なるほど、むちゃくちゃなシステムなんだな
自分では確認できない、他人になり変わらないとわからないってかw
大丈夫、お前の使ってるようなお前が作った変な環境なのは使ってない作ってないから

てか、lsで確認できる程度なら全然関係ない話だろうがっ。それも自分のではなくて他人のって話だろうが、お前のは(一般ユーザがすることではないな)
無理がありすぎな設定だな。また妄想の世界に入ってるのか

>lsで確認できる程度
ここのヒントがあります(ナゾw)
2020/09/23(水) 20:54:09.45ID:9Qi89m1Q
>>478
もう「testでは自分以外が見れないことを確認することができない」って話をしてること忘れちゃったの?
2020/09/23(水) 20:54:47.00ID:ORLEAcPg
>>477
括弧付きでも保続で書くのは「[ある意味]重要」な
本当にお前は読めないヤツだな

だからそんな当たり前のようなことを書くのは、お前自身が〜だってw
2020/09/23(水) 20:56:27.40ID:9Qi89m1Q
>>469で自分から括弧の話題を初めたのに↓

> って、括弧付きでわざわざ シェルスクリプト って書いていて、

何を言ってるんだろうこいつはw
2020/09/23(水) 21:17:39.64ID:ORLEAcPg
>>479
わかった、話が通じないのは

test なんて自分で読み書きできるかどうかだけの話、それを他のユーザが読めるか確認するために使おうとする奴なんていない
ls(他)使うのは当たり前(ていうか普通コマンドなどで確認するよなw)

お前のいうtestをそんなので使うシチュエーションなんてハナからあり得ないから俺の頭に入ってこなかった
あくまでも、ファイル読みたい書きたいの話でしかしてない、俺は

なんか悪かったなw
悪かった答えの一つとしてACLを調べればいいよ。lsで確認できない、ACLはパーミッション無視してACLでのになるシステムもあったず
(めんどくさいからお前のいう目的でもsudo+test使った方が簡単だと思うぞw ダミーユーザ作ってもな、コマンドで確認しても後で変わるような変なシステム使ってるなら)
2020/09/23(水) 21:19:44.43ID:ORLEAcPg
>>481
あああぁ
「で」は「だが」のつもりだったんだが、なんでか「で」と打っていた
そりゃお前が噛み付くのも仕方がないな、そこはスマン
2020/09/23(水) 21:20:01.69ID:9Qi89m1Q
>>434の質問に対して、>>482という答えを言うバカでしたね(笑)

434 名前:デフォルトの名無しさん[sage] 投稿日:2020/09/23(水) 13:32:17.22 ID:BgUeNus/ [1/3]
lsコマンドをシェルスクリプトの中で使う場合ってなにかある?
ファイルの列挙に関してはfindコマンドや,もっと簡単にグロブとかを使った方が
余計な書式を含まずに処理しやすいし,
ファイルの情報に関してはtestコマンドの方が一発で分かる
(例えばディレクトリかどうかはlsコマンドの場合権限欄の情報を文字列として
解析しなくてはいけない(先頭にdがあるかどうか)が,
testコマンドの場合はtest -e && test -dで完結する)

lsコマンドを使わないとできないシェルスクリプトでの処理ってなにかあるかな。
興味本位でききたい(言わずもがなだけどlsコマンドが不要!とかそういう話ではなく)。
2020/09/23(水) 21:22:05.00ID:ORLEAcPg
お前が質問とは関係ないシチュエーションの話をいきなりしだしたのがだな
質問者もそんな目的でtest使おうとは思ってないだろうw
2020/09/23(水) 21:24:49.53ID:9Qi89m1Q
質問と関係ないシチュエーション?
自分以外から読み書きできないことを確かめるというシチュエーションは
testではできずlsではできるので、質問と関係ありますが?

> 質問者もそんな目的でtest使おうとは思ってないだろうw
すでに、礼を貰ってるんだがw

> 443 名前:デフォルトの名無しさん[sage] 投稿日:2020/09/23(水) 16:43:09.16 ID:BgUeNus/ [3/3]
> >>439
> あーこれはあるな。
> thx



な?こいつ色々やばいだろ?w
2020/09/23(水) 21:29:24.56ID:ORLEAcPg
だから、それもそのユーザがという話だろう。それが俺の言う
質問者がどっちかというのは知らんけど、さすがにtestを使ってるならお前の言うようなシチュエーションはないなっていう、そう書いてるだろ
2020/09/23(水) 21:33:26.77ID:ORLEAcPg
>>487
>そう書いてるだろ
俺がな。いちおうw

>>486
しつこく自説を書き偉ぶりたいなら、お前のは重大なミスw(なんか急にドモモが〜とか言い出すんだから重大なんだろうw)があると思うからちゃんと調べてから書いてね、せっかく「教えてやったw」んだから
2020/09/23(水) 21:38:54.36ID:9Qi89m1Q
>>487
俺のシチュエーションは質問者が「あーこれはあるな。」と言いました。
それとは関係ないお前のが考えたシチュエーションの話を始めないでください(笑)
2020/09/23(水) 21:40:57.92ID:9Qi89m1Q
ドコモ口座のくだりは「自分以外が見れないことを確認するというシチュエーション」を
あなたが思いつかなかったからですねw
2020/09/23(水) 21:45:02.67ID:9Qi89m1Q
質問者「lsコマンドをシェルスクリプトの中で使う場合ってなにかある?」
ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」

な?会話になってない
2020/09/23(水) 21:46:06.17ID:ORLEAcPg
シチュエーションは書いてないね
だから、それも その別のユーザが読み書きしたいときにできるか確認=読み書きできないのかではなくて読み書きしたいができるのか という話も全然ありえるね

多分、>>446もそうだと思うよ「スクリプトで書くと」と書いてるしね
質問者も。理由を書いてるように

お前のようにはなりたくないけどw、多分俺の方じゃないかなあどうかなああ

お前はそのシチュエーションに当たった想像した時にtestを使おうと思ったの?そんなに自説に拘るとは
2020/09/23(水) 21:49:21.84ID:9Qi89m1Q
> だから、それも その別のユーザが読み書きしたいときにできるか確認=読み書きできないのかではなくて読み書きしたいができるのか という話も全然ありえるね

質問者「lsコマンドをシェルスクリプトの中で使う場合ってなにかある?」
俺「他のユーザーが読み書きでないこと確認したいときはls使うしか無いよ」
質問者「 あーこれはあるな。tkx」

ORLEAcPg「読み書きしたいができるのかというシチュエーションがー」


意味不明w
2020/09/23(水) 21:50:10.12ID:ORLEAcPg
>>492
>理由を書いてるように
俺がな。いちおうw

大げさに急にドコモが〜とか騒ぎだしたくせに、責任転嫁か、意味不明すぎ
脊髄反射のような内容のない連投は辞めろよw
2020/09/23(水) 21:52:19.69ID:ORLEAcPg
自説は一歩も引きません、俺の頭の中で思ったことは全て正解ですそれしかありません
モードに入ったか

すでにそれだけじゃないと書いたので ちゃんとそれに対して 反論してね(なんて言いたくはないが誰かの常套句なのでw)
2020/09/23(水) 21:53:09.37ID:9Qi89m1Q
会話のキャッチボールができてないんだろうね
俺は質問者の質問に対して、testではできずにlsでしかできないという一例を
言ったのにこいつは何が言いたいんだろうかw

ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」
2020/09/23(水) 21:54:32.42ID:ORLEAcPg
うん、お前がな
明らかに堂々巡りしてるのはお前w
2020/09/23(水) 21:54:33.12ID:9Qi89m1Q
>>495
お前は質問者の質問に対して何を言いたいのか
それだけを書いてみてよw

無理だろ?お前は質問者を置いてきぼりにしてるからね
2020/09/23(水) 21:55:07.75ID:9Qi89m1Q
>>497
だから質問者の質問に答えろってw
2回目
2020/09/23(水) 21:58:26.51ID:ORLEAcPg
すでに書いてる。堂々巡りだな、それでよくキャッチボールとかw

そして ls はお前の言うようなのでも俺の言うようなシチュエーションでも不備があるともなw
2020/09/23(水) 21:59:35.70ID:9Qi89m1Q
> すでに書いてる。
聞いてるのは質問者への答えだが?どのレス?

言えないはず
2020/09/23(水) 22:01:18.13ID:ORLEAcPg
>>499
イミフ
ls は使うよ。使う場合はお前じゃない人が書いてる場合とか
あえて言うなら、お前のそれだけじゃ使えない場合もあるよってことかな

てか、なんでお前がそんなレスするのかイミフすぎw
2020/09/23(水) 22:01:22.69ID:9Qi89m1Q
> そして ls はお前の言うようなのでも俺の言うようなシチュエーションでも不備があるともなw

質問者にlsを使う場合を聞かれたから、その答えである「lsを使わなければいけない場合」を俺が言ったのに、
なぜか「lsでは駄目な場合もある!」と言い出してけんかを売ってくるアホw
2020/09/23(水) 22:01:51.35ID:9Qi89m1Q
>>502
だから俺じゃなくて質問者の質問に答えろってw
3回目
2020/09/23(水) 22:02:18.95ID:ORLEAcPg
>>501
お前の頭の構造は計り知れない。わかるかっw
そしてイミフなことを急に言われても困惑するだけ
2020/09/23(水) 22:02:57.86ID:9Qi89m1Q
「質問者の質問に答えろ」の意味がわからないらしいw
2020/09/23(水) 22:04:23.38ID:ORLEAcPg
>>503
補足だよw
ホントにお前は自分のミス/抜けなりを絶対に認めないマンだなw

>>504
堂々巡りw キャッチボールとはなんなのか。お前のは壁当て(?)だ
2020/09/23(水) 22:04:56.57ID:9Qi89m1Q
質問者の質問に答えてみろっていっても、やっぱり俺にレスをするw
4回目
2020/09/23(水) 22:05:31.69ID:ORLEAcPg
>>506
なんで「お前が」「俺に」命令してるのか、全くわからんな
真っ当な根拠をちょっと言うてみ
2020/09/23(水) 22:06:09.41ID:9Qi89m1Q
質問者の質問に答えたらねw
5回目
2020/09/23(水) 22:06:23.28ID:ORLEAcPg
>>508
>質問者の質問に答えてみろっていっても、やっぱり俺にレスをする

>質問者の質問に答えてみろっていっても、
>やっぱり俺にレスをする

超絶イミフすぎw
2020/09/23(水) 22:07:14.53ID:9Qi89m1Q
イミフという言葉でごまかして
質問者の質問に答えないw
6回目
2020/09/23(水) 22:07:34.39ID:ORLEAcPg
しょもな。さすが自称キャッチボールできるが実はしたことがない人だなあ
ショーーーもなっ
2020/09/23(水) 22:08:30.66ID:9Qi89m1Q
質問者の質問に答えないからキャッチボールできてない
7回目
2020/09/23(水) 22:09:15.87ID:BgUeNus/
なんかすいません。
2020/09/23(水) 22:09:23.19ID:ORLEAcPg
>>512

>>509
以下のレスに対しても
てか同じレス繰り返してるだけだと 荒らし だよ
2020/09/23(水) 22:09:27.29ID:9Qi89m1Q
いいえいいえ、いつもの人ですからw
2020/09/23(水) 22:10:15.53ID:9Qi89m1Q
>>515
心当たりないと思うけど、 ID:ORLEAcPgはレスを返したつもりらしいよw
2020/09/23(水) 22:11:59.79ID:ORLEAcPg
>>515
こいつ とは 誰もが こんな風になる何度も繰り返してるパターンだから気にすることないよ

>>517,518
よく言うよww何言ってんだか
520434
垢版 |
2020/09/23(水) 22:20:56.68ID:BgUeNus/
どっちの味方をする訳でもないんですけど,
私の質問を別の言い方で表わすなら
「(対話的でない)シェルスクリプトにおいて
私はlsコマンドを使う意義をあまり感じないんだけれど
(なぜならlsコマンドを使うほぼ全ての状況において
やりたいことをもっと簡単に実現できる
コマンドが用意されてるから。例: find, test),
lsコマンドを積極的に使わないといけない場合はありますか」
ということで,それに対して
「ある。lsコマンドでないと他人の権限を確認できない。
(testコマンドは自分の権限のみ)」
という解答を頂いたので,それで十分です。
ありがとうございました。
2020/09/23(水) 22:53:35.65ID:9Qi89m1Q
どういたしましてw

lsは対話型で使うようなイメージだけど
POSIX準拠コマンドは最低限だが必要なコマンドを網羅しているはずという観点から見ると、
もっと簡単に実現できるコマンド(findやtestじゃなくてstatなどね)の多くは
POSIX準拠ではないので、じゃあどうやって実現するんだ?と考えると
lsコマンドでできるじゃんという結論に達するんだよ

その結論を前提としてlsコマンドの仕様を再確認すると
lsコマンドの出力形式はちゃんと決まっており
(対話的でない)シェルスクリプトから使うことも
想定されてることに気づく

lsコマンドは一覧表示だけではなくファイルの属性を
取得するためのコマンドでもあるんだよ
522デフォルトの名無しさん
垢版 |
2020/09/24(木) 23:24:13.87ID:92vN9a+2
>>434
何万ファイルもあるディレクトリ以下の実際のファイル数をカウントしたい時とか。
ls -U ディレクトリ | wc -l
が速くて良いかな。
これじゃディレクトリも一緒にカウントしちゃうか・・・
523デフォルトの名無しさん
垢版 |
2020/09/24(木) 23:25:44.41ID:92vN9a+2
うう。リロード忘れてとっくの昔に終わった話にレスを・・・orz
524デフォルトの名無しさん
垢版 |
2020/09/24(木) 23:27:34.11ID:92vN9a+2
あ、まだ終わってなかったかな?
まあでもたいした事書いてないからどうでもいいや。俺のことは忘れてくれ。
2020/09/25(金) 18:57:33.19ID:zTEUyLd9
スクリプト中でlsはしょっちゅう使うな、俺。
2020/09/25(金) 19:30:49.67ID:mj+ujYgo
普通に使うな。逆になんで使わないと思うのか不思議
lsで問題があるようなら言うような別のをにするけど
2020/09/25(金) 20:48:34.96ID:3RZRIqWS
いろんなコマンドを臨機応変に使うことが気になる質だったんやろ。
好き好きとしか。
2020/09/25(金) 21:48:25.44ID:jsxvfqFg
>>526
POSIX限定コマンドじゃないなら
ls以外でほとんどのことができるからでしょ
macOSがオプション違っていて面倒くさすぎるってのを除けば
パーミッションとかもstatコマンドで取得できるし

それにしてもWindowsはLinuxに対応したから楽になったけど
macOSはBSD系だからローカルでテストして
そのままサーバーに持っていくってのが難しくなってるなw
2020/09/25(金) 21:49:09.32ID:jsxvfqFg
訂正
POSIX準拠コマンドに限定しないなら
ls以外でほとんどのことができるからでしょ
2020/09/26(土) 00:48:11.88ID:dttQ22N8
>>527
ls使わないだからな、臨機応変ではなさげ
好き好きにとしかは同意
2020/09/26(土) 00:51:51.88ID:QU/lr7ZN
>>530,527
ああ、
>コマンドを臨機応変に使うことが気になる質
は、他の人を指してるとも読めるな。そっちのつもりならすまん
2020/09/26(土) 02:08:03.67ID:4T/mBKG7
>>531
使うことが気になる(から使いたくない)質
2020/09/26(土) 02:34:50.07ID:QU/lr7ZN
>>532
>>531の、
>コマンドを臨機応変に使うことが気になる質
は「ことが気になる質」余分だった「コマンドを臨機応変に使う」だなと書き込んだ後で気がついた。まあいいかとほっといた(真逆(?)なんだが)。すまん

なんとなくw理解。どうも&重ね重ねすまん
2020/09/28(月) 21:25:26.80ID:iGYBTUav
誰とは言わんけどツイッターで永遠と古い記事繰り返し流してるボットいるよね
リンク切れてるし邪魔なだけなんだけどああいうの消し去りたい
2020/09/30(水) 23:58:17.77ID:QG8+TwCh
https://zenn.dev/mattn/books/bb181f3f4731920f29a5/viewer/5

> 既にシェルスクリプトのみでやる領域を超えてきています。
> 本来ならば正しいプログラミング言語を選んで正しくフィルタリングすべきだと思います。

と書いてありますが、これを「正しいプログラミング言語」で書くとどうなりますか?
シェルスクリプトだけでやるより分かりやすくなりますか?
536デフォルトの名無しさん
垢版 |
2020/10/01(木) 00:02:53.15ID:5ZG2Vz6Q
あげー
2020/10/01(木) 07:52:50.34ID:theiHz1p
>>535
Windows のRuby で、JSON ファイルをダウンロードして保存する、部分だけを作ったが、
85KB のファイルの中身には、日本語は無く、
ほとんど、\u6708 みたいなユニコード・コードポイントの表示ばかりで読めない。
{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}

ダウンロードする際の、オプションでも間違ったのかな?

download_file = "wikipedia.json"

# ファイルが存在しない時だけ、ダウンロードして保存する
unless FileTest.exist? download_file
require 'open-uri'
require 'cgi'
require 'date'

today = Date.today.strftime( "%-m月%-d日" ) # 今日の日付。1桁表示。例、10月1日
url = "https://ja.wikipedia.org/w/api.php?format=json&;action=query&prop=revisions&rvprop=content&exintro&explaintext&redirects=1&titles=" +
CGI.escape( today ) # URL encode

# ダウンロードしたファイルを保存する
open( url ) do |file|
open( download_file, "w" ) do |out|
out.write( file.read ) # 書き込み
end
end
end
2020/10/01(木) 07:56:51.16ID:eBr+ViBh
>>537
やっぱり逆に長くなってるし分かりやすくなってないですよね?
539537
垢版 |
2020/10/01(木) 08:27:48.51ID:theiHz1p
Ruby の方が、一般的な関数を使っているから、分かりやすい。
例えば、CGI.escape で、URL encode してる

元のサイトだと、date +%-m月%-d日
の部分を、何かでエンコードして、以下のようにして、
date +%-m%%E6%%9C%%88%-d%%E6%%97%%A5

それを、titles の所に書いている。
titles=$(date +%-m%%E6%%9C%%88%-d%%E6%%97%%A5)
2020/10/01(木) 23:43:56.76ID:GxyRQFaD
> Ruby の方が、一般的な関数を使っているから、分かりやすい。
その理屈だとシェルスクリプトにもそのような関数(コマンド)があればいいって話になるよね?
2020/10/02(金) 00:24:23.57ID:DKz3pZcY
シェルスクリプトの場合はJSONからデータ取るのにjqのミニ言語を覚えなきゃいけないというのはあるけど
Wikipediaのように構造化しにくいデータをテキストのまま加工するならそこまで大きな差はないよね

便利な関数が用意されてるかどうかやエラーハンドリングがやりやすいかどうかくらいの違い
Wikipediaのデータ用のパーサー使ってテキストじゃなく構造化したデータを扱えるなら差が出てくる
2020/10/02(金) 01:31:17.04ID:yAc5FveJ
jqのミニ言語 vs 言語のパーサー?とかだろうけど
結局、jqのミニ言語の方が小さくならね?

それでも言語のパーサー使うってことは
大きくなったら、さくっと複雑な正規表現一発よりもも
愚直に文字や単語を検索していって処理を書いたほうが
分かりやすいと言ってるのと同じようなことなんかな?
543デフォルトの名無しさん
垢版 |
2020/10/02(金) 01:39:10.41ID:ChxT/cO/
答えを教えてくれという質問に答える必要があるのか?
544デフォルトの名無しさん
垢版 |
2020/10/02(金) 01:40:52.28ID:ChxT/cO/
なんでRubyなのか。初心者ならどのプラットフォームでも動くPythonを勧めておけよ。
2020/10/02(金) 01:59:11.44ID:yAc5FveJ
>>543
答えたくないなら何も話さなくていいのに
そのような質問をする必要があるのか?w
546デフォルトの名無しさん
垢版 |
2020/10/02(金) 02:02:36.55ID:ChxT/cO/
シェルスクリプトの話ではないならな
2020/10/02(金) 02:07:55.41ID:3z5rsnx9
いつもの
2020/10/02(金) 02:09:25.19ID:yAc5FveJ
なるほどw
2020/10/02(金) 03:39:17.87ID:b+gARvx0
macOSがzshに変わっても/bin/shはbashなんだしzshでコード書くやつなんておらんだろと
思っていたけどzshrcとかで書くことはあるんだな
2020/10/02(金) 04:11:27.42ID:3z5rsnx9
何言ってるのかと思ったら、zsh固有のを使ってことか
誰も好き好んでそうシェルはそう変えないけど、デフォがzshになったらそれなりに出てくるんじゃね
だいたいがデフォだからそのシェルを使ってるって理由にならない理由wだからな

>zshに変わっても/bin/shはbashなんだし
bashismに慣れているんだったら脱却した方がいいぞ。あくまでも過渡期(変えた直後)だからそうしてるだけで、そのうち無くなるぞ。絶対何かに変わる。dashとか(dashとは言ってない)
2020/10/02(金) 04:20:08.62ID:Kgg5xh5c
なくならないほうに賭けるぜ!
Bashはもうなくせんやろ。w
2020/10/02(金) 04:27:45.79ID:b+gARvx0
bashはなくならないが、インタラクティブシェル
/bin/shはdash、もしくはPOSIX準拠のシェルだろ

dashよりも速いシェルって作れる気がするんだよな
JITとか取り入れてさ
2020/10/02(金) 04:58:29.55ID:3z5rsnx9
メンテするのめんどくさくなって消してしまうのが定番だからなあ
必要なら自分で入れろになると思うよ。いつも通りならw
554デフォルトの名無しさん
垢版 |
2020/10/02(金) 08:31:08.24ID:Ym6Y+dmB
dash dash dash
bash and dash
2020/10/02(金) 09:54:23.17ID:b+gARvx0
bashismは嫌いだから/bin/shはdashにしてbashをオプショナルにするか
POSIXで標準化して欲しい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況