シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
探検
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
475デフォルトの名無しさん
2020/09/23(水) 20:45:12.45ID:9Qi89m1Q >>473
お前に言っておく。
自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ
このように「自分以外が見れないことを確認する必要」はあるんだからな
お前に言っておく。
自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ
このように「自分以外が見れないことを確認する必要」はあるんだからな
476デフォルトの名無しさん
2020/09/23(水) 20:47:29.66ID:ORLEAcPg >>474
お前はいつも指摘の仕方が異常
お前自身ががその程度なのかもしれないがという話にかならんぞ
なに当たり前のことを言っているねん
それに、逆に補足するということはそれもある意味重要ということだぞ?別にどうでもいいなら補足もしないからな
お前はいつも指摘の仕方が異常
お前自身ががその程度なのかもしれないがという話にかならんぞ
なに当たり前のことを言っているねん
それに、逆に補足するということはそれもある意味重要ということだぞ?別にどうでもいいなら補足もしないからな
477デフォルトの名無しさん
2020/09/23(水) 20:51:39.81ID:9Qi89m1Q 重要なときには ”ダブルクォートで” とか「かぎかっこ」でくくるんだよアホw
478デフォルトの名無しさん
2020/09/23(水) 20:52:38.90ID:ORLEAcPg >>475
>自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ
なるほど、むちゃくちゃなシステムなんだな
自分では確認できない、他人になり変わらないとわからないってかw
大丈夫、お前の使ってるようなお前が作った変な環境なのは使ってない作ってないから
てか、lsで確認できる程度なら全然関係ない話だろうがっ。それも自分のではなくて他人のって話だろうが、お前のは(一般ユーザがすることではないな)
無理がありすぎな設定だな。また妄想の世界に入ってるのか
>lsで確認できる程度
ここのヒントがあります(ナゾw)
>自分で作ったファイルに他人には見られてはいけないパスワードなどを入れるなら
パーミッションに問題がないか必ず確認しろ
なるほど、むちゃくちゃなシステムなんだな
自分では確認できない、他人になり変わらないとわからないってかw
大丈夫、お前の使ってるようなお前が作った変な環境なのは使ってない作ってないから
てか、lsで確認できる程度なら全然関係ない話だろうがっ。それも自分のではなくて他人のって話だろうが、お前のは(一般ユーザがすることではないな)
無理がありすぎな設定だな。また妄想の世界に入ってるのか
>lsで確認できる程度
ここのヒントがあります(ナゾw)
479デフォルトの名無しさん
2020/09/23(水) 20:54:09.45ID:9Qi89m1Q >>478
もう「testでは自分以外が見れないことを確認することができない」って話をしてること忘れちゃったの?
もう「testでは自分以外が見れないことを確認することができない」って話をしてること忘れちゃったの?
480デフォルトの名無しさん
2020/09/23(水) 20:54:47.00ID:ORLEAcPg481デフォルトの名無しさん
2020/09/23(水) 20:56:27.40ID:9Qi89m1Q482デフォルトの名無しさん
2020/09/23(水) 21:17:39.64ID:ORLEAcPg >>479
わかった、話が通じないのは
test なんて自分で読み書きできるかどうかだけの話、それを他のユーザが読めるか確認するために使おうとする奴なんていない
ls(他)使うのは当たり前(ていうか普通コマンドなどで確認するよなw)
お前のいうtestをそんなので使うシチュエーションなんてハナからあり得ないから俺の頭に入ってこなかった
あくまでも、ファイル読みたい書きたいの話でしかしてない、俺は
なんか悪かったなw
悪かった答えの一つとしてACLを調べればいいよ。lsで確認できない、ACLはパーミッション無視してACLでのになるシステムもあったず
(めんどくさいからお前のいう目的でもsudo+test使った方が簡単だと思うぞw ダミーユーザ作ってもな、コマンドで確認しても後で変わるような変なシステム使ってるなら)
わかった、話が通じないのは
test なんて自分で読み書きできるかどうかだけの話、それを他のユーザが読めるか確認するために使おうとする奴なんていない
ls(他)使うのは当たり前(ていうか普通コマンドなどで確認するよなw)
お前のいうtestをそんなので使うシチュエーションなんてハナからあり得ないから俺の頭に入ってこなかった
あくまでも、ファイル読みたい書きたいの話でしかしてない、俺は
なんか悪かったなw
悪かった答えの一つとしてACLを調べればいいよ。lsで確認できない、ACLはパーミッション無視してACLでのになるシステムもあったず
(めんどくさいからお前のいう目的でもsudo+test使った方が簡単だと思うぞw ダミーユーザ作ってもな、コマンドで確認しても後で変わるような変なシステム使ってるなら)
483デフォルトの名無しさん
2020/09/23(水) 21:19:44.43ID:ORLEAcPg484デフォルトの名無しさん
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コマンドが不要!とかそういう話ではなく)。
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コマンドが不要!とかそういう話ではなく)。
485デフォルトの名無しさん
2020/09/23(水) 21:22:05.00ID:ORLEAcPg お前が質問とは関係ないシチュエーションの話をいきなりしだしたのがだな
質問者もそんな目的でtest使おうとは思ってないだろうw
質問者もそんな目的でtest使おうとは思ってないだろうw
486デフォルトの名無しさん
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
自分以外から読み書きできないことを確かめるというシチュエーションは
testではできずlsではできるので、質問と関係ありますが?
> 質問者もそんな目的でtest使おうとは思ってないだろうw
すでに、礼を貰ってるんだがw
> 443 名前:デフォルトの名無しさん[sage] 投稿日:2020/09/23(水) 16:43:09.16 ID:BgUeNus/ [3/3]
> >>439
> あーこれはあるな。
> thx
な?こいつ色々やばいだろ?w
487デフォルトの名無しさん
2020/09/23(水) 21:29:24.56ID:ORLEAcPg だから、それもそのユーザがという話だろう。それが俺の言う
質問者がどっちかというのは知らんけど、さすがにtestを使ってるならお前の言うようなシチュエーションはないなっていう、そう書いてるだろ
質問者がどっちかというのは知らんけど、さすがにtestを使ってるならお前の言うようなシチュエーションはないなっていう、そう書いてるだろ
488デフォルトの名無しさん
2020/09/23(水) 21:33:26.77ID:ORLEAcPg489デフォルトの名無しさん
2020/09/23(水) 21:38:54.36ID:9Qi89m1Q490デフォルトの名無しさん
2020/09/23(水) 21:40:57.92ID:9Qi89m1Q ドコモ口座のくだりは「自分以外が見れないことを確認するというシチュエーション」を
あなたが思いつかなかったからですねw
あなたが思いつかなかったからですねw
491デフォルトの名無しさん
2020/09/23(水) 21:45:02.67ID:9Qi89m1Q 質問者「lsコマンドをシェルスクリプトの中で使う場合ってなにかある?」
ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」
な?会話になってない
ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」
な?会話になってない
492デフォルトの名無しさん
2020/09/23(水) 21:46:06.17ID:ORLEAcPg シチュエーションは書いてないね
だから、それも その別のユーザが読み書きしたいときにできるか確認=読み書きできないのかではなくて読み書きしたいができるのか という話も全然ありえるね
多分、>>446もそうだと思うよ「スクリプトで書くと」と書いてるしね
質問者も。理由を書いてるように
お前のようにはなりたくないけどw、多分俺の方じゃないかなあどうかなああ
お前はそのシチュエーションに当たった想像した時にtestを使おうと思ったの?そんなに自説に拘るとは
だから、それも その別のユーザが読み書きしたいときにできるか確認=読み書きできないのかではなくて読み書きしたいができるのか という話も全然ありえるね
多分、>>446もそうだと思うよ「スクリプトで書くと」と書いてるしね
質問者も。理由を書いてるように
お前のようにはなりたくないけどw、多分俺の方じゃないかなあどうかなああ
お前はそのシチュエーションに当たった想像した時にtestを使おうと思ったの?そんなに自説に拘るとは
493デフォルトの名無しさん
2020/09/23(水) 21:49:21.84ID:9Qi89m1Q > だから、それも その別のユーザが読み書きしたいときにできるか確認=読み書きできないのかではなくて読み書きしたいができるのか という話も全然ありえるね
質問者「lsコマンドをシェルスクリプトの中で使う場合ってなにかある?」
俺「他のユーザーが読み書きでないこと確認したいときはls使うしか無いよ」
質問者「 あーこれはあるな。tkx」
ORLEAcPg「読み書きしたいができるのかというシチュエーションがー」
意味不明w
質問者「lsコマンドをシェルスクリプトの中で使う場合ってなにかある?」
俺「他のユーザーが読み書きでないこと確認したいときはls使うしか無いよ」
質問者「 あーこれはあるな。tkx」
ORLEAcPg「読み書きしたいができるのかというシチュエーションがー」
意味不明w
494デフォルトの名無しさん
2020/09/23(水) 21:50:10.12ID:ORLEAcPg495デフォルトの名無しさん
2020/09/23(水) 21:52:19.69ID:ORLEAcPg 自説は一歩も引きません、俺の頭の中で思ったことは全て正解ですそれしかありません
モードに入ったか
すでにそれだけじゃないと書いたので ちゃんとそれに対して 反論してね(なんて言いたくはないが誰かの常套句なのでw)
モードに入ったか
すでにそれだけじゃないと書いたので ちゃんとそれに対して 反論してね(なんて言いたくはないが誰かの常套句なのでw)
496デフォルトの名無しさん
2020/09/23(水) 21:53:09.37ID:9Qi89m1Q 会話のキャッチボールができてないんだろうね
俺は質問者の質問に対して、testではできずにlsでしかできないという一例を
言ったのにこいつは何が言いたいんだろうかw
ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」
俺は質問者の質問に対して、testではできずにlsでしかできないという一例を
言ったのにこいつは何が言いたいんだろうかw
ORLEAcPg「testを使ってるならお前の言うようなシチュエーションはない」
497デフォルトの名無しさん
2020/09/23(水) 21:54:32.42ID:ORLEAcPg うん、お前がな
明らかに堂々巡りしてるのはお前w
明らかに堂々巡りしてるのはお前w
498デフォルトの名無しさん
2020/09/23(水) 21:54:33.12ID:9Qi89m1Q499デフォルトの名無しさん
2020/09/23(水) 21:55:07.75ID:9Qi89m1Q500デフォルトの名無しさん
2020/09/23(水) 21:58:26.51ID:ORLEAcPg すでに書いてる。堂々巡りだな、それでよくキャッチボールとかw
そして ls はお前の言うようなのでも俺の言うようなシチュエーションでも不備があるともなw
そして ls はお前の言うようなのでも俺の言うようなシチュエーションでも不備があるともなw
501デフォルトの名無しさん
2020/09/23(水) 21:59:35.70ID:9Qi89m1Q > すでに書いてる。
聞いてるのは質問者への答えだが?どのレス?
言えないはず
聞いてるのは質問者への答えだが?どのレス?
言えないはず
502デフォルトの名無しさん
2020/09/23(水) 22:01:18.13ID:ORLEAcPg503デフォルトの名無しさん
2020/09/23(水) 22:01:22.69ID:9Qi89m1Q > そして ls はお前の言うようなのでも俺の言うようなシチュエーションでも不備があるともなw
質問者にlsを使う場合を聞かれたから、その答えである「lsを使わなければいけない場合」を俺が言ったのに、
なぜか「lsでは駄目な場合もある!」と言い出してけんかを売ってくるアホw
質問者にlsを使う場合を聞かれたから、その答えである「lsを使わなければいけない場合」を俺が言ったのに、
なぜか「lsでは駄目な場合もある!」と言い出してけんかを売ってくるアホw
504デフォルトの名無しさん
2020/09/23(水) 22:01:51.35ID:9Qi89m1Q505デフォルトの名無しさん
2020/09/23(水) 22:02:18.95ID:ORLEAcPg506デフォルトの名無しさん
2020/09/23(水) 22:02:57.86ID:9Qi89m1Q 「質問者の質問に答えろ」の意味がわからないらしいw
507デフォルトの名無しさん
2020/09/23(水) 22:04:23.38ID:ORLEAcPg508デフォルトの名無しさん
2020/09/23(水) 22:04:56.57ID:9Qi89m1Q 質問者の質問に答えてみろっていっても、やっぱり俺にレスをするw
4回目
4回目
509デフォルトの名無しさん
2020/09/23(水) 22:05:31.69ID:ORLEAcPg510デフォルトの名無しさん
2020/09/23(水) 22:06:09.41ID:9Qi89m1Q 質問者の質問に答えたらねw
5回目
5回目
511デフォルトの名無しさん
2020/09/23(水) 22:06:23.28ID:ORLEAcPg512デフォルトの名無しさん
2020/09/23(水) 22:07:14.53ID:9Qi89m1Q イミフという言葉でごまかして
質問者の質問に答えないw
6回目
質問者の質問に答えないw
6回目
513デフォルトの名無しさん
2020/09/23(水) 22:07:34.39ID:ORLEAcPg しょもな。さすが自称キャッチボールできるが実はしたことがない人だなあ
ショーーーもなっ
ショーーーもなっ
514デフォルトの名無しさん
2020/09/23(水) 22:08:30.66ID:9Qi89m1Q 質問者の質問に答えないからキャッチボールできてない
7回目
7回目
515デフォルトの名無しさん
2020/09/23(水) 22:09:15.87ID:BgUeNus/ なんかすいません。
516デフォルトの名無しさん
2020/09/23(水) 22:09:23.19ID:ORLEAcPg517デフォルトの名無しさん
2020/09/23(水) 22:09:27.29ID:9Qi89m1Q いいえいいえ、いつもの人ですからw
518デフォルトの名無しさん
2020/09/23(水) 22:10:15.53ID:9Qi89m1Q >>515
心当たりないと思うけど、 ID:ORLEAcPgはレスを返したつもりらしいよw
心当たりないと思うけど、 ID:ORLEAcPgはレスを返したつもりらしいよw
519デフォルトの名無しさん
2020/09/23(水) 22:11:59.79ID:ORLEAcPg520434
2020/09/23(水) 22:20:56.68ID:BgUeNus/ どっちの味方をする訳でもないんですけど,
私の質問を別の言い方で表わすなら
「(対話的でない)シェルスクリプトにおいて
私はlsコマンドを使う意義をあまり感じないんだけれど
(なぜならlsコマンドを使うほぼ全ての状況において
やりたいことをもっと簡単に実現できる
コマンドが用意されてるから。例: find, test),
lsコマンドを積極的に使わないといけない場合はありますか」
ということで,それに対して
「ある。lsコマンドでないと他人の権限を確認できない。
(testコマンドは自分の権限のみ)」
という解答を頂いたので,それで十分です。
ありがとうございました。
私の質問を別の言い方で表わすなら
「(対話的でない)シェルスクリプトにおいて
私はlsコマンドを使う意義をあまり感じないんだけれど
(なぜならlsコマンドを使うほぼ全ての状況において
やりたいことをもっと簡単に実現できる
コマンドが用意されてるから。例: find, test),
lsコマンドを積極的に使わないといけない場合はありますか」
ということで,それに対して
「ある。lsコマンドでないと他人の権限を確認できない。
(testコマンドは自分の権限のみ)」
という解答を頂いたので,それで十分です。
ありがとうございました。
521デフォルトの名無しさん
2020/09/23(水) 22:53:35.65ID:9Qi89m1Q どういたしましてw
lsは対話型で使うようなイメージだけど
POSIX準拠コマンドは最低限だが必要なコマンドを網羅しているはずという観点から見ると、
もっと簡単に実現できるコマンド(findやtestじゃなくてstatなどね)の多くは
POSIX準拠ではないので、じゃあどうやって実現するんだ?と考えると
lsコマンドでできるじゃんという結論に達するんだよ
その結論を前提としてlsコマンドの仕様を再確認すると
lsコマンドの出力形式はちゃんと決まっており
(対話的でない)シェルスクリプトから使うことも
想定されてることに気づく
lsコマンドは一覧表示だけではなくファイルの属性を
取得するためのコマンドでもあるんだよ
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
が速くて良いかな。
これじゃディレクトリも一緒にカウントしちゃうか・・・
何万ファイルもあるディレクトリ以下の実際のファイル数をカウントしたい時とか。
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 あ、まだ終わってなかったかな?
まあでもたいした事書いてないからどうでもいいや。俺のことは忘れてくれ。
まあでもたいした事書いてないからどうでもいいや。俺のことは忘れてくれ。
525デフォルトの名無しさん
2020/09/25(金) 18:57:33.19ID:zTEUyLd9 スクリプト中でlsはしょっちゅう使うな、俺。
526デフォルトの名無しさん
2020/09/25(金) 19:30:49.67ID:mj+ujYgo 普通に使うな。逆になんで使わないと思うのか不思議
lsで問題があるようなら言うような別のをにするけど
lsで問題があるようなら言うような別のをにするけど
527デフォルトの名無しさん
2020/09/25(金) 20:48:34.96ID:3RZRIqWS いろんなコマンドを臨機応変に使うことが気になる質だったんやろ。
好き好きとしか。
好き好きとしか。
528デフォルトの名無しさん
2020/09/25(金) 21:48:25.44ID:jsxvfqFg >>526
POSIX限定コマンドじゃないなら
ls以外でほとんどのことができるからでしょ
macOSがオプション違っていて面倒くさすぎるってのを除けば
パーミッションとかもstatコマンドで取得できるし
それにしてもWindowsはLinuxに対応したから楽になったけど
macOSはBSD系だからローカルでテストして
そのままサーバーに持っていくってのが難しくなってるなw
POSIX限定コマンドじゃないなら
ls以外でほとんどのことができるからでしょ
macOSがオプション違っていて面倒くさすぎるってのを除けば
パーミッションとかもstatコマンドで取得できるし
それにしてもWindowsはLinuxに対応したから楽になったけど
macOSはBSD系だからローカルでテストして
そのままサーバーに持っていくってのが難しくなってるなw
529デフォルトの名無しさん
2020/09/25(金) 21:49:09.32ID:jsxvfqFg 訂正
POSIX準拠コマンドに限定しないなら
ls以外でほとんどのことができるからでしょ
POSIX準拠コマンドに限定しないなら
ls以外でほとんどのことができるからでしょ
530デフォルトの名無しさん
2020/09/26(土) 00:48:11.88ID:dttQ22N8531デフォルトの名無しさん
2020/09/26(土) 00:51:51.88ID:QU/lr7ZN532デフォルトの名無しさん
2020/09/26(土) 02:08:03.67ID:4T/mBKG7 >>531
使うことが気になる(から使いたくない)質
使うことが気になる(から使いたくない)質
533デフォルトの名無しさん
2020/09/26(土) 02:34:50.07ID:QU/lr7ZN534デフォルトの名無しさん
2020/09/28(月) 21:25:26.80ID:iGYBTUav 誰とは言わんけどツイッターで永遠と古い記事繰り返し流してるボットいるよね
リンク切れてるし邪魔なだけなんだけどああいうの消し去りたい
リンク切れてるし邪魔なだけなんだけどああいうの消し去りたい
535デフォルトの名無しさん
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 あげー
537デフォルトの名無しさん
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
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
538デフォルトの名無しさん
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)
例えば、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)
540デフォルトの名無しさん
2020/10/01(木) 23:43:56.76ID:GxyRQFaD > Ruby の方が、一般的な関数を使っているから、分かりやすい。
その理屈だとシェルスクリプトにもそのような関数(コマンド)があればいいって話になるよね?
その理屈だとシェルスクリプトにもそのような関数(コマンド)があればいいって話になるよね?
541デフォルトの名無しさん
2020/10/02(金) 00:24:23.57ID:DKz3pZcY シェルスクリプトの場合はJSONからデータ取るのにjqのミニ言語を覚えなきゃいけないというのはあるけど
Wikipediaのように構造化しにくいデータをテキストのまま加工するならそこまで大きな差はないよね
便利な関数が用意されてるかどうかやエラーハンドリングがやりやすいかどうかくらいの違い
Wikipediaのデータ用のパーサー使ってテキストじゃなく構造化したデータを扱えるなら差が出てくる
Wikipediaのように構造化しにくいデータをテキストのまま加工するならそこまで大きな差はないよね
便利な関数が用意されてるかどうかやエラーハンドリングがやりやすいかどうかくらいの違い
Wikipediaのデータ用のパーサー使ってテキストじゃなく構造化したデータを扱えるなら差が出てくる
542デフォルトの名無しさん
2020/10/02(金) 01:31:17.04ID:yAc5FveJ jqのミニ言語 vs 言語のパーサー?とかだろうけど
結局、jqのミニ言語の方が小さくならね?
それでも言語のパーサー使うってことは
大きくなったら、さくっと複雑な正規表現一発よりもも
愚直に文字や単語を検索していって処理を書いたほうが
分かりやすいと言ってるのと同じようなことなんかな?
結局、jqのミニ言語の方が小さくならね?
それでも言語のパーサー使うってことは
大きくなったら、さくっと複雑な正規表現一発よりもも
愚直に文字や単語を検索していって処理を書いたほうが
分かりやすいと言ってるのと同じようなことなんかな?
543デフォルトの名無しさん
2020/10/02(金) 01:39:10.41ID:ChxT/cO/ 答えを教えてくれという質問に答える必要があるのか?
544デフォルトの名無しさん
2020/10/02(金) 01:40:52.28ID:ChxT/cO/ なんでRubyなのか。初心者ならどのプラットフォームでも動くPythonを勧めておけよ。
545デフォルトの名無しさん
2020/10/02(金) 01:59:11.44ID:yAc5FveJ546デフォルトの名無しさん
2020/10/02(金) 02:02:36.55ID:ChxT/cO/ シェルスクリプトの話ではないならな
547デフォルトの名無しさん
2020/10/02(金) 02:07:55.41ID:3z5rsnx9 いつもの
548デフォルトの名無しさん
2020/10/02(金) 02:09:25.19ID:yAc5FveJ なるほどw
549デフォルトの名無しさん
2020/10/02(金) 03:39:17.87ID:b+gARvx0 macOSがzshに変わっても/bin/shはbashなんだしzshでコード書くやつなんておらんだろと
思っていたけどzshrcとかで書くことはあるんだな
思っていたけどzshrcとかで書くことはあるんだな
550デフォルトの名無しさん
2020/10/02(金) 04:11:27.42ID:3z5rsnx9 何言ってるのかと思ったら、zsh固有のを使ってことか
誰も好き好んでそうシェルはそう変えないけど、デフォがzshになったらそれなりに出てくるんじゃね
だいたいがデフォだからそのシェルを使ってるって理由にならない理由wだからな
>zshに変わっても/bin/shはbashなんだし
bashismに慣れているんだったら脱却した方がいいぞ。あくまでも過渡期(変えた直後)だからそうしてるだけで、そのうち無くなるぞ。絶対何かに変わる。dashとか(dashとは言ってない)
誰も好き好んでそうシェルはそう変えないけど、デフォがzshになったらそれなりに出てくるんじゃね
だいたいがデフォだからそのシェルを使ってるって理由にならない理由wだからな
>zshに変わっても/bin/shはbashなんだし
bashismに慣れているんだったら脱却した方がいいぞ。あくまでも過渡期(変えた直後)だからそうしてるだけで、そのうち無くなるぞ。絶対何かに変わる。dashとか(dashとは言ってない)
551デフォルトの名無しさん
2020/10/02(金) 04:20:08.62ID:Kgg5xh5c なくならないほうに賭けるぜ!
Bashはもうなくせんやろ。w
Bashはもうなくせんやろ。w
552デフォルトの名無しさん
2020/10/02(金) 04:27:45.79ID:b+gARvx0 bashはなくならないが、インタラクティブシェル
/bin/shはdash、もしくはPOSIX準拠のシェルだろ
dashよりも速いシェルって作れる気がするんだよな
JITとか取り入れてさ
/bin/shはdash、もしくはPOSIX準拠のシェルだろ
dashよりも速いシェルって作れる気がするんだよな
JITとか取り入れてさ
553デフォルトの名無しさん
2020/10/02(金) 04:58:29.55ID:3z5rsnx9 メンテするのめんどくさくなって消してしまうのが定番だからなあ
必要なら自分で入れろになると思うよ。いつも通りならw
必要なら自分で入れろになると思うよ。いつも通りならw
554デフォルトの名無しさん
2020/10/02(金) 08:31:08.24ID:Ym6Y+dmB dash dash dash
bash and dash
bash and dash
555デフォルトの名無しさん
2020/10/02(金) 09:54:23.17ID:b+gARvx0 bashismは嫌いだから/bin/shはdashにしてbashをオプショナルにするか
POSIXで標準化して欲しい
POSIXで標準化して欲しい
556デフォルトの名無しさん
2020/10/02(金) 12:30:02.56ID:Kgg5xh5c >>553
既存シェルスクリプトの動作検証よりはマシやろ。w
BashとかPerl5とかはすでにインフラみたいなもんだし。
まあ、Python2も消せないやろ、と思ってたら、意外と3のみになったもよう。
既存シェルスクリプトの動作検証よりはマシやろ。w
BashとかPerl5とかはすでにインフラみたいなもんだし。
まあ、Python2も消せないやろ、と思ってたら、意外と3のみになったもよう。
557デフォルトの名無しさん
2020/10/02(金) 12:40:10.03ID:kBx+3rAk >>556
何を言っているのかイマイチわからん
現在の bash 3.2 ですら時代遅れだし、Apple自身でメンテしなくてはならない
macOS内でApple製のスクリプトがあるんだったらもちろん代替になるので問題なく書き換えられるだろう
今まで通りならmacOSバンドルとしてはインストールされなくなるのは当然のような帰結
何を言っているのかイマイチわからん
現在の bash 3.2 ですら時代遅れだし、Apple自身でメンテしなくてはならない
macOS内でApple製のスクリプトがあるんだったらもちろん代替になるので問題なく書き換えられるだろう
今まで通りならmacOSバンドルとしてはインストールされなくなるのは当然のような帰結
558デフォルトの名無しさん
2020/10/02(金) 12:52:27.29ID:sGznlVtc macOSの/bin/shのbash3.2はもう負債だよねw
これからAppleはどうするつもりなんだろ
zshは互換性ないし、dashにしたら機能低下だしw
これからAppleはどうするつもりなんだろ
zshは互換性ないし、dashにしたら機能低下だしw
559デフォルトの名無しさん
2020/10/02(金) 16:49:14.59ID:Kgg5xh5c560デフォルトの名無しさん
2020/10/02(金) 18:28:44.86ID:bqQ3ZGOC いつ無くなってもいいように今からしとこというマジメに考えたらの話だけど
マジメってどういう意味なのか知らんけど
マジメってどういう意味なのか知らんけど
561デフォルトの名無しさん
2020/10/02(金) 21:23:42.67ID:VhuuBVU8 Appleは突然Swift出してきたりMetal出してきたりArm出してきたりであらゆる分野で考慮するだけ無駄というスタンス
562デフォルトの名無しさん
2020/10/02(金) 22:46:19.69ID:Kgg5xh5c563デフォルトの名無しさん
2020/10/02(金) 22:58:56.81ID:r3ReT+S4 その今使えるbashっていうのがmacOSでは3.2なのよね・・・
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/migration_planning_guide/sect-migration_guide-package_changes-bash
Bash-4.0 およびそれ以降のバージョンは、 プロセス置換の構成をブレース展開を使って変更せずに渡すことができるようになるため、
内容の展開はすべて別々に指定し、 各プロセス置換を別々に入力しなければならなくなります。
Bash-4.0 およびそれ以降のバージョンでは Posix が指定するのと同様に、 SIGCHLD が wait の組込みに割り込みを許可するため、
全ての子を待機するよう「wait」を使用する場合、 子を終了したら SIGCHLD トラップは常に呼び出されることがなくなります。
Bash-4.0 およびそれ以降のバージョンは、 クローズ用の区切り文字 $() コマンド置換を検索する場合に
Posix のルールに従うようになり、 旧バージョンのような動作はしなくなりますが、
より多くの構文および解析のエラーを先に捕らえてからコマンド置換を評価するためのサブシェルを生成します。
Bash-4.0 およびそれ以降のバージョンでは、 パイプラインのコマンドのひとつがコマンド一覧を実行している間に
SIGINT によって終了させられた場合、 シェルは割り込みを受けたかのような動作をします。
Bash-4.0 およびそれ以降のバージョンでは、 set -e オプションの処理法が変更されるため、
パイプラインが失敗すると (失敗したパイプライン内の最後のコマンドが単純なコマンドでない場合も) シェルは終了します。
これは Posix が指定するものとは異なります。 この部分の基準を更新する作業が進展中です。
Bash-4.0 の動作はリリースの時点での合意を得ようとしている動作です。
Bash-4.0 およびそれ以降のバージョンでは、"." がシステムの PATH に存在しない場合でも、. (source) ビルトインが
ファイル名の引数を現在のディレクトリで検索してしまう原因となっていた Posix モードのバグが修正されています。
Posix では、このような場合シェルによる PWD 変数内の検索は行われるべきではないと述べられています。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/migration_planning_guide/sect-migration_guide-package_changes-bash
Bash-4.0 およびそれ以降のバージョンは、 プロセス置換の構成をブレース展開を使って変更せずに渡すことができるようになるため、
内容の展開はすべて別々に指定し、 各プロセス置換を別々に入力しなければならなくなります。
Bash-4.0 およびそれ以降のバージョンでは Posix が指定するのと同様に、 SIGCHLD が wait の組込みに割り込みを許可するため、
全ての子を待機するよう「wait」を使用する場合、 子を終了したら SIGCHLD トラップは常に呼び出されることがなくなります。
Bash-4.0 およびそれ以降のバージョンは、 クローズ用の区切り文字 $() コマンド置換を検索する場合に
Posix のルールに従うようになり、 旧バージョンのような動作はしなくなりますが、
より多くの構文および解析のエラーを先に捕らえてからコマンド置換を評価するためのサブシェルを生成します。
Bash-4.0 およびそれ以降のバージョンでは、 パイプラインのコマンドのひとつがコマンド一覧を実行している間に
SIGINT によって終了させられた場合、 シェルは割り込みを受けたかのような動作をします。
Bash-4.0 およびそれ以降のバージョンでは、 set -e オプションの処理法が変更されるため、
パイプラインが失敗すると (失敗したパイプライン内の最後のコマンドが単純なコマンドでない場合も) シェルは終了します。
これは Posix が指定するものとは異なります。 この部分の基準を更新する作業が進展中です。
Bash-4.0 の動作はリリースの時点での合意を得ようとしている動作です。
Bash-4.0 およびそれ以降のバージョンでは、"." がシステムの PATH に存在しない場合でも、. (source) ビルトインが
ファイル名の引数を現在のディレクトリで検索してしまう原因となっていた Posix モードのバグが修正されています。
Posix では、このような場合シェルによる PWD 変数内の検索は行われるべきではないと述べられています。
564デフォルトの名無しさん
2020/10/03(土) 02:30:20.61ID:GCdjvz0l >Bashをなくしたとして、POSIX互換シェルをわざわざ残すのかと
何もわかってないのに口出す馬鹿
何もわかってないのに口出す馬鹿
565デフォルトの名無しさん
2020/10/03(土) 11:56:15.65ID:ylT9+9xh シェル上で別の種類のシェルが動いたり、種類が異なるシェルが別のシェルの動作をエミュレートしていることを知らないんだろうね。
566デフォルトの名無しさん
2020/10/03(土) 12:51:18.99ID:Pwjke0L1567デフォルトの名無しさん
2020/10/03(土) 13:59:59.45ID:/+lXvOCZ 変わるも何も現状及びその対応の予測の理解が間違ってるってことなんだがw
568デフォルトの名無しさん
2020/10/03(土) 14:04:51.63ID:F0et+WHN POSIXという標準があるから変わるわけないんだよな
多く使われてるdebian/ubuntuがPOSIXに準拠を頑なに守ってる
/bin/shがdashが多いからPOSIX準拠で書くしかない
そうすればmacOSでも動く
多く使われてるdebian/ubuntuがPOSIXに準拠を頑なに守ってる
/bin/shがdashが多いからPOSIX準拠で書くしかない
そうすればmacOSでも動く
569デフォルトの名無しさん
2020/10/03(土) 14:12:51.48ID:/+lXvOCZ 1行目と2行目以降が繋がらない
bashのエミュレーションがちゃんとしてたら問題がなかったのにな
GNUはライセンスにうるさいwくせになぜあんなのなのだかな
bashのエミュレーションがちゃんとしてたら問題がなかったのにな
GNUはライセンスにうるさいwくせになぜあんなのなのだかな
570デフォルトの名無しさん
2020/10/06(火) 07:21:02.23ID:8TYkjhvC571デフォルトの名無しさん
2020/10/10(土) 22:35:58.03ID:33g/v1Rs シェルスクリプト関連のツイート見てたらGPT-3?か知らんけど
AIで文章を生成して日本語に翻訳してるボットを発見したw
https://twitter.com/5hc7PFFLfvjD88V
https://twitter.com/5chan_nel (5ch newer account)
AIで文章を生成して日本語に翻訳してるボットを発見したw
https://twitter.com/5hc7PFFLfvjD88V
https://twitter.com/5chan_nel (5ch newer account)
572デフォルトの名無しさん
2020/10/13(火) 23:49:10.96ID:fWSRS6M8 素人ですが世話になります
POSIXってシェルの最低限の共通規約って認識でいいんだろうか
機能を拡張しても所詮は方言だから封印しとけと
POSIXってシェルの最低限の共通規約って認識でいいんだろうか
機能を拡張しても所詮は方言だから封印しとけと
573デフォルトの名無しさん
2020/10/14(水) 00:14:50.23ID:1GHjlaSZ grep -Lqだとqの方が勝つんか…
574デフォルトの名無しさん
2020/10/14(水) 00:24:26.43ID:1GHjlaSZ grep -L pat file > /dev/null って捨てると返り血が変わる…?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国】日本のアニソン歌唱中に強制中断 上海、照明落とされ音楽止まる★4 [♪♪♪★]
- 芸能界ケンカ最強番付を発表「リングなら岡田准一」 横浜流星&新田真剣佑の名前も 1番強いのは誰か [牛丼★]
- 「報道特集」山本恵里伽アナ、日中緊張で「当たり前のことがはっきり言いづらい空気…ショック」 [首都圏の虎★]
- 「まだ朝7時に通勤してるんですか?」にじさんじVTuberがXの投稿で炎上、YouTubeで釈明と謝罪 [muffin★]
- 落ち度はゼレンスキー氏に 内政混乱、市民怒り [蚤の市★]
- 【サッカー】J2とJ3が観客数で歴代最多更新 J2は337万人超、J3も142万人超で過去最多「記録ずくめの最終節」 [尺アジ★]
- 【実況】博衣こよりのえちえちラムベガス🧪★3
- 高市早苗に3,000万円の献金を渡した団体、限界突破wwwwwwwwwwwwwwwwwwwwwwww [329329848]
- TBS山本恵里伽アナ「当たり前のことをハッキリ言いづらい空気、ショック」高市発言騒動に関連して [369521721]
- 🏡
- ひろゆきが夫婦円満な理由
- おさかなさんあつまれえ!!!
