シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/)
探検
シェルスクリプト総合 その28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/07/24(火) 11:01:16.36ID:r0TJj2hB409デフォルトの名無しさん
2018/08/28(火) 23:06:39.91ID:Hq0PMDIz410デフォルトの名無しさん
2018/08/28(火) 23:06:43.85ID:+71nChns >>407
はい
はい
411デフォルトの名無しさん
2018/08/28(火) 23:07:59.71ID:Hq0PMDIz412デフォルトの名無しさん
2018/08/28(火) 23:10:58.04ID:+71nChns ん?まさかと思うが、git "みたいな" オプションを使いたいって話を
例だとわからずに、本当にgitのオプションをそのまま扱うとか
勘違いしてないか?
一行目に
> シェルスクリプトで引数を取り扱ういい方法はないでしょうか?
と書いてあるから、間違うわけ無いと思うが?
> gitみたいにサブコマンドが使えて、
と書いてるのに「みたい」って文字を見逃して、
まんまgitのオプションを扱う方法だと思いこんで、
gitのオプション扱うなら、C言語のソースみればいいだろとか?
うわー、そう理解してしまうのは本気でやばい。ダメな方に意味でやばい
例だとわからずに、本当にgitのオプションをそのまま扱うとか
勘違いしてないか?
一行目に
> シェルスクリプトで引数を取り扱ういい方法はないでしょうか?
と書いてあるから、間違うわけ無いと思うが?
> gitみたいにサブコマンドが使えて、
と書いてるのに「みたい」って文字を見逃して、
まんまgitのオプションを扱う方法だと思いこんで、
gitのオプション扱うなら、C言語のソースみればいいだろとか?
うわー、そう理解してしまうのは本気でやばい。ダメな方に意味でやばい
413デフォルトの名無しさん
2018/08/28(火) 23:12:22.86ID:Hq0PMDIz モノホンだったら怖過ぎですよ
414デフォルトの名無しさん
2018/08/28(火) 23:14:57.35ID:+71nChns 仕切り直すわ。なんでこの文章で理解できないのかわからないが、
ちゃんと補足する。
シェルスクリプトで引数を取り扱ういい方法はないでしょうか?
getoptとかgetoptsがあるのは知っています。
くり返しいいます。
getoptとかgetoptsがあるのは知っています。
ですが、例えば cp みたいに、cp -a a b とかけるが
cp a -a b や cp a b -a というふうにオプションの順番を入れ替えても動くとか
(もちろんcpは例です。cpみたいなと言ってるわけで、cpのオプションを
扱いたいなんて言っていません)
gitみたいにサブコマンドが使えて、
git --no-pager log --stat のように--no-pagerはgitのオプション、
--statはlogのオプションみたいにする方法がよくわかりません
(もちろんgitは例です。gitみたいなと言ってるわけで、gitのオプションを
扱いたいなんて言っていません)
頑張ればできると思いますが、複雑になりそうです。
(gitのC言語のソースのような複雑なコードは書きたくないです)
なにかいい方法はないでしょうか?
なお他言語を使うとか言うのは禁止です。
ちゃんと補足する。
シェルスクリプトで引数を取り扱ういい方法はないでしょうか?
getoptとかgetoptsがあるのは知っています。
くり返しいいます。
getoptとかgetoptsがあるのは知っています。
ですが、例えば cp みたいに、cp -a a b とかけるが
cp a -a b や cp a b -a というふうにオプションの順番を入れ替えても動くとか
(もちろんcpは例です。cpみたいなと言ってるわけで、cpのオプションを
扱いたいなんて言っていません)
gitみたいにサブコマンドが使えて、
git --no-pager log --stat のように--no-pagerはgitのオプション、
--statはlogのオプションみたいにする方法がよくわかりません
(もちろんgitは例です。gitみたいなと言ってるわけで、gitのオプションを
扱いたいなんて言っていません)
頑張ればできると思いますが、複雑になりそうです。
(gitのC言語のソースのような複雑なコードは書きたくないです)
なにかいい方法はないでしょうか?
なお他言語を使うとか言うのは禁止です。
415デフォルトの名無しさん
2018/08/28(火) 23:17:00.32ID:gikJ8/5D416デフォルトの名無しさん
2018/08/28(火) 23:17:57.87ID:+71nChns >>415
gitは忘れてください
gitは忘れてください
417デフォルトの名無しさん
2018/08/28(火) 23:18:19.53ID:+71nChns gitの話はしていません。オプションの話をしています。
418デフォルトの名無しさん
2018/08/28(火) 23:19:04.23ID:gikJ8/5D だいたいgitがどうやってオプション解析してるかも知らずに
よくもまあぬけぬけと「getoptは使わない方針で」と言えたもんだな
いままでそんなゴミみたいな思考回路で生きてきて恥かしくないのかね
よくもまあぬけぬけと「getoptは使わない方針で」と言えたもんだな
いままでそんなゴミみたいな思考回路で生きてきて恥かしくないのかね
419デフォルトの名無しさん
2018/08/28(火) 23:19:26.80ID:Hq0PMDIz420デフォルトの名無しさん
2018/08/28(火) 23:20:08.62ID:gikJ8/5D421デフォルトの名無しさん
2018/08/28(火) 23:20:31.97ID:Hq0PMDIz >>418
直球だなああ。若いなww(しつれい)
直球だなああ。若いなww(しつれい)
422デフォルトの名無しさん
2018/08/28(火) 23:20:43.63ID:+71nChns423デフォルトの名無しさん
2018/08/28(火) 23:21:17.44ID:+71nChns424デフォルトの名無しさん
2018/08/28(火) 23:21:55.96ID:gikJ8/5D あーあ。
オプション解析なんてみんながやってることで
そしてそのノウハウもかなり溜ってるんだから
質問の仕方さえ間違えなければすぐさま希望する答えが手に入ったのにね
もったいない
お前のような人間はこれからずっと人生負け組だよww
オプション解析なんてみんながやってることで
そしてそのノウハウもかなり溜ってるんだから
質問の仕方さえ間違えなければすぐさま希望する答えが手に入ったのにね
もったいない
お前のような人間はこれからずっと人生負け組だよww
425デフォルトの名無しさん
2018/08/28(火) 23:22:44.60ID:gikJ8/5D >>423
お前に足りないのは脳味噌と他人に対する配慮だよボケ
お前に足りないのは脳味噌と他人に対する配慮だよボケ
426デフォルトの名無しさん
2018/08/28(火) 23:23:09.32ID:+71nChns >>424
お前何がしたいの?
お前何がしたいの?
427デフォルトの名無しさん
2018/08/28(火) 23:23:35.87ID:+71nChns428デフォルトの名無しさん
2018/08/29(水) 05:00:00.96ID:byfOgvI+ 他板でもそうですが回答側がアレですねw
夏休みで低年齢層が増えていたからでしょうか。
夏休みで低年齢層が増えていたからでしょうか。
429デフォルトの名無しさん
2018/08/29(水) 08:40:49.02ID:JKfxUNfw IDやワッチョイのつけられる板に越してきた理由が、
こういう感じの無意味な応酬が目に余ったからだしな。
知性はあっても子供だよね。
IDがあってホント良かったよ。
こういう感じの無意味な応酬が目に余ったからだしな。
知性はあっても子供だよね。
IDがあってホント良かったよ。
430デフォルトの名無しさん
2018/08/29(水) 08:56:49.98ID:ND6xKvzt >>414 お願いします。
431デフォルトの名無しさん
2018/08/29(水) 10:36:23.57ID:jDyQ3/+0 >>430
ない
ない
432デフォルトの名無しさん
2018/08/29(水) 14:43:49.86ID:dthpACHL433デフォルトの名無しさん
2018/08/29(水) 14:46:35.77ID:jUkhBS20 誰か414を3行にまとめてくれ
434デフォルトの名無しさん
2018/08/29(水) 14:51:01.95ID:ND6xKvzt シェルスクリプトで引数を取り扱ういい方法はないでしょうか?
getoptとかgetoptsがあるのは知っています。
頑張ればできると思いますが、複雑になりそうです。
getoptとかgetoptsがあるのは知っています。
頑張ればできると思いますが、複雑になりそうです。
435デフォルトの名無しさん
2018/08/29(水) 15:14:53.45ID:AXEWk4o3 getoptとかgetoptsで頑張るのがいいと思います
436デフォルトの名無しさん
2018/08/29(水) 15:29:00.41ID:jUkhBS20 getoptとかgetoptsで頑張るのがいいと思います
437デフォルトの名無しさん
2018/08/29(水) 16:01:13.07ID:Nn5B1KsW getoptとかgetoptsで頑張るのがいいと思います
438デフォルトの名無しさん
2018/08/29(水) 16:14:32.69ID:U+j3n810 getoptとかgetoptsで頑張るのがいいと思います
439デフォルトの名無しさん
2018/08/29(水) 17:01:53.59ID:rEBrQhP5 人生、時には諦める事も必要
440デフォルトの名無しさん
2018/08/29(水) 17:22:27.53ID:zGukP1bd 良いプログラマーとは、楽をする為に労力を惜しまないそうです
今回はその労力をここでの問答に費やす訳ですから
粘り強く頑張って頂ければ良いのかなと思いました
今回はその労力をここでの問答に費やす訳ですから
粘り強く頑張って頂ければ良いのかなと思いました
441デフォルトの名無しさん
2018/08/29(水) 20:56:07.12ID:zRPnCBM0 なにもしないのが一番楽
やっぱりアホしかいないわ
やっぱりアホしかいないわ
442デフォルトの名無しさん
2018/08/29(水) 21:02:14.84ID:zfnELSlX と、アホが申してます
443デフォルトの名無しさん
2018/08/29(水) 21:41:17.05ID:ySrrhl3u ム版に引っ越してきたばかりにム版の厄介者にいつかれちまったな
444デフォルトの名無しさん
2018/08/29(水) 21:45:29.75ID:PHlZ4Qkz ゆうめいじんなのか。なるほど
445デフォルトの名無しさん
2018/08/29(水) 21:46:04.98ID:jUkhBS20 まぁIDすらなかった頃に比べれば顔真っ赤が判別できるのは助かるわ
446デフォルトの名無しさん
2018/08/29(水) 23:58:23.02ID:U+j3n810 要求の多いお兄ちゃんは、結局何もしないの?
447デフォルトの名無しさん
2018/08/30(木) 09:43:05.13ID:Le3eFjin しかし引数解析ってそんなに頑張らなくても自作できるよなあ。面倒なだけで。
448デフォルトの名無しさん
2018/08/30(木) 09:45:01.72ID:rxoSSaq5 だから面倒なのがいやなんだろ?それぐらいわかれよ
449デフォルトの名無しさん
2018/08/30(木) 09:49:03.76ID:5UlR9u+e 引数解析そのものを諦めて別の手段にするとか
450デフォルトの名無しさん
2018/08/30(木) 10:11:57.74ID:lJFNKW+A 引数解析って
prog -abcde
とかもできるの?
prog -a -b -c -d
とかしかできないの?
prog -abcde
とかもできるの?
prog -a -b -c -d
とかしかできないの?
451デフォルトの名無しさん
2018/08/30(木) 10:26:46.95ID:DLN02TyK 好きに作ればよくね
452デフォルトの名無しさん
2018/08/30(木) 10:57:16.78ID:8BsM3ej5 >>450
普通にできるてかしてくれる。てかそれぐらいちょっと調べればわかること
普通にできるてかしてくれる。てかそれぐらいちょっと調べればわかること
453デフォルトの名無しさん
2018/08/30(木) 11:05:59.54ID:rxoSSaq5 ちょっと調べたけど
https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb
ロングオプションが使えないgetoptsか
--longと書いたら-oと誤爆するgetopsしか
見つからなかった
「普通にできる」とはどういうこと?
https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb
ロングオプションが使えないgetoptsか
--longと書いたら-oと誤爆するgetopsしか
見つからなかった
「普通にできる」とはどういうこと?
454デフォルトの名無しさん
2018/08/30(木) 11:12:04.78ID:rxoSSaq5 > --longと書いたら-oと誤爆するgetopsしか
--は先に除外すればできるか。リンク先のコードではダメだけど
あとgetopt。これはbashだから、caseの二段構成にするしかないんかな
これを「普通にできる」とは思わんけど
--は先に除外すればできるか。リンク先のコードではダメだけど
あとgetopt。これはbashだから、caseの二段構成にするしかないんかな
これを「普通にできる」とは思わんけど
455デフォルトの名無しさん
2018/08/30(木) 11:13:00.09ID:8BsM3ej5 getoptはGNUとBSDでは別物。GNUのはロングオプションに対応してる。誤爆って?
getoptsはKorn/POSIX シェル組み込みコマンド(らしい)。ロングオプションは使えないが>>450を「普通」にやってくれる
ロングオプションと羅列を混同してるのか??
getoptsはKorn/POSIX シェル組み込みコマンド(らしい)。ロングオプションは使えないが>>450を「普通」にやってくれる
ロングオプションと羅列を混同してるのか??
456デフォルトの名無しさん
2018/08/30(木) 11:17:10.20ID:rxoSSaq5 やっぱりデメリットあるのか。
ロングオプションが使えないのはだめだね
できるけど、べつのことができない
ロングオプションが使えないのはだめだね
できるけど、べつのことができない
457デフォルトの名無しさん
2018/08/30(木) 11:17:50.50ID:8BsM3ej5 なにを言いたいのだか
458デフォルトの名無しさん
2018/08/30(木) 11:22:47.19ID:KGeBif2I やはりそういうことか
459デフォルトの名無しさん
2018/08/30(木) 11:24:37.49ID:rxoSSaq5 例えて言うなら、ケーキ食べられる?って聞いて
普通に食べられる(だけどパンは食べられないけどね)
みたいだなーってことだよ
確かにケーキ食べられる?が質問だし、食べられるのだろけど
それ以前のできて当然のものができないっていうのは
がっかりするしか無いなぁってこと
普通に食べられる(だけどパンは食べられないけどね)
みたいだなーってことだよ
確かにケーキ食べられる?が質問だし、食べられるのだろけど
それ以前のできて当然のものができないっていうのは
がっかりするしか無いなぁってこと
460デフォルトの名無しさん
2018/08/30(木) 11:25:04.80ID:KGeBif2I うん
うん?
うん?
461デフォルトの名無しさん
2018/08/30(木) 11:26:42.89ID:8BsM3ej5 トンチキが横入りして勝手に俺の思ってたのと違うっていうのか。知らんがな
462デフォルトの名無しさん
2018/08/30(木) 11:28:00.65ID:rxoSSaq5 こういうふうに、話の流れから当然だろ?と思うことも
いちいち全部言わないと、話ができないってのは
アスペなんだろうなって思う
いちいち全部言わないと、話ができないってのは
アスペなんだろうなって思う
463デフォルトの名無しさん
2018/08/30(木) 11:30:29.24ID:8BsM3ej5 それはあんたの勝手な話の流れの解釈だな
俺は、>>450は今までとは違う初心者のぶっ込みでしかないと思うけど。ある意味新たな
てか、本題はもう終わってるだろう?あんたの勘違いでwそれを認めたくなくダラダラなだけだな
俺は、>>450は今までとは違う初心者のぶっ込みでしかないと思うけど。ある意味新たな
てか、本題はもう終わってるだろう?あんたの勘違いでwそれを認めたくなくダラダラなだけだな
464デフォルトの名無しさん
2018/08/30(木) 11:38:24.71ID:rxoSSaq5 >>463
なんか自分が初心者の質問を解決してあげたみたいに思ってるかもしれないけど、
getoptでそれができるよ(ただしロングオプションは使えないよ)って
教えてあげたのは俺だからね
あんたは普通にできるといっただけで、どうやってできるとは言ってない。
getoptという名前を出すと、すぐにロングオプションが使えないことも
わかってしまうからね。制限付きであることを隠したいから、名前を出さずに
普通にできるという言葉でごまかしたんでしょう?
なんか自分が初心者の質問を解決してあげたみたいに思ってるかもしれないけど、
getoptでそれができるよ(ただしロングオプションは使えないよ)って
教えてあげたのは俺だからね
あんたは普通にできるといっただけで、どうやってできるとは言ってない。
getoptという名前を出すと、すぐにロングオプションが使えないことも
わかってしまうからね。制限付きであることを隠したいから、名前を出さずに
普通にできるという言葉でごまかしたんでしょう?
465デフォルトの名無しさん
2018/08/30(木) 11:52:42.25ID:TV9jsMCb >>464
なんでそんなイライラしてるの?
なんでそんなイライラしてるの?
466デフォルトの名無しさん
2018/08/30(木) 12:05:15.24ID:rxoSSaq5 >>463がイライラしてるのが移ったんだろうさw
467デフォルトの名無しさん
2018/08/30(木) 12:05:25.60ID:8BsM3ej5 >>464
解決してあげたww。次の文とかからもそこが大事なのねwなるほど
俺は別にお前のように俺が俺がというのはないなあ。単なる雑談の一種でしかないな
なので、お前のその言っていること全体がイミフメイ。妄想するのは勝手だが、妄想をダダ漏れさせてぶつけられても困ります。あとは勝手にやっとくれ
解決してあげたww。次の文とかからもそこが大事なのねwなるほど
俺は別にお前のように俺が俺がというのはないなあ。単なる雑談の一種でしかないな
なので、お前のその言っていること全体がイミフメイ。妄想するのは勝手だが、妄想をダダ漏れさせてぶつけられても困ります。あとは勝手にやっとくれ
468デフォルトの名無しさん
2018/08/30(木) 12:07:53.14ID:rxoSSaq5 ほらね。イライラしてるw
469デフォルトの名無しさん
2018/08/30(木) 12:10:55.47ID:rxoSSaq5 雑談したいなら雑談スレに行けばいいのにね
470デフォルトの名無しさん
2018/08/30(木) 12:37:21.81ID:KGeBif2I まぁ暇なんだろ
ここでやるなには同意だが
ここでやるなには同意だが
471デフォルトの名無しさん
2018/08/30(木) 12:55:18.44ID:8BsM3ej5 暇なのは否定しないが、雑談の「一種」と言っているのだけどな
すんなっていってるそれも雑談じゃないの?
すんなっていってるそれも雑談じゃないの?
472デフォルトの名無しさん
2018/08/30(木) 18:15:49.30ID:43MmhEYe473デフォルトの名無しさん
2018/08/30(木) 19:45:19.96ID:rxoSSaq5 >>472
そんなんだからアスペって言われるんだよ
そんなんだからアスペって言われるんだよ
474デフォルトの名無しさん
2018/08/31(金) 04:38:19.15ID:6Alav1/S ひらめいた!
prog -abcde
を引数解析するには
prog -a -b -c -d -e
に変換すればいいんじゃね?
【お題】
prog --foo -abcde --bar param
を
prog --foo -a -b -c -d -e --bar param
と実行したように見せかけるにはどうしたら良いか?
prog -abcde
を引数解析するには
prog -a -b -c -d -e
に変換すればいいんじゃね?
【お題】
prog --foo -abcde --bar param
を
prog --foo -a -b -c -d -e --bar param
と実行したように見せかけるにはどうしたら良いか?
475デフォルトの名無しさん
2018/08/31(金) 05:07:23.65ID:QWemr4wG >>474
getopt(1)を一度でも使えばそんなお題を出さずにすむのに
getopt(1)を一度でも使えばそんなお題を出さずにすむのに
476デフォルトの名無しさん
2018/08/31(金) 05:17:02.08ID:91l/t0hy 上のちょっと変わった人だろう
477デフォルトの名無しさん
2018/08/31(金) 07:41:02.63ID:6Alav1/S getoptはロングオプション使えないじゃん
478デフォルトの名無しさん
2018/08/31(金) 07:58:25.86ID:ii43Mx6H バッチはシェルではないけどMSDOSはシェルなん?
479デフォルトの名無しさん
2018/08/31(金) 08:33:46.47ID:NkcoCIHS おまえら車輪の再発明が好きだな(´・∀・`)
480デフォルトの名無しさん
2018/08/31(金) 08:44:41.63ID:csqJsH/K >>478
MS-DOSはWindows以前に使われていたCLIベースのOSの名前
MS-DOSではcommand.comというシェルが使われいていた
バッチファイルはcommand.com用のシェルスクリプト
バッチファイルはバッチ処理を行うために使われていたシェルスクリプト
Windows 9x系でもcommand.comは存在しDOSプロンプトとも呼ばれる。
16bitアプリケーションでありMS-DOS互換環境を提供する役割もあった
Windows NT系ではMS-DOSが完全に廃止され、DOSプロンプトから
名前を変えてコマンドプロンプト(cmd.exe)が標準のCLIシェルとなった。
(32bit版では互換性のためにcommand.comも残っているが
NT系はMS-DOSが存在しないため、実行環境はWindows 95と大きく異なる)
まとめると
MS-DOS、Windows 9x(95, 98など)、Windows NT(XP、7、10など)がOSの名前
command.com、cmd.exeがシェルの名前
拡張子 .bat .cmd のファイルが、バッチファイル
バッチファイルで行う処理がバッチ(処理)
シェルでバッチ処理を行うためのスクリプトがシェルスクリプト
MS-DOSはWindows以前に使われていたCLIベースのOSの名前
MS-DOSではcommand.comというシェルが使われいていた
バッチファイルはcommand.com用のシェルスクリプト
バッチファイルはバッチ処理を行うために使われていたシェルスクリプト
Windows 9x系でもcommand.comは存在しDOSプロンプトとも呼ばれる。
16bitアプリケーションでありMS-DOS互換環境を提供する役割もあった
Windows NT系ではMS-DOSが完全に廃止され、DOSプロンプトから
名前を変えてコマンドプロンプト(cmd.exe)が標準のCLIシェルとなった。
(32bit版では互換性のためにcommand.comも残っているが
NT系はMS-DOSが存在しないため、実行環境はWindows 95と大きく異なる)
まとめると
MS-DOS、Windows 9x(95, 98など)、Windows NT(XP、7、10など)がOSの名前
command.com、cmd.exeがシェルの名前
拡張子 .bat .cmd のファイルが、バッチファイル
バッチファイルで行う処理がバッチ(処理)
シェルでバッチ処理を行うためのスクリプトがシェルスクリプト
481デフォルトの名無しさん
2018/08/31(金) 12:15:59.98ID:4WvfdMT+ めっちゃ早口で言ってそう
482デフォルトの名無しさん
2018/08/31(金) 12:54:57.94ID:hD6bHOXY 録音してゆっくり再生してようやっと何言ってるかわかる、ぐらいかな
483デフォルトの名無しさん
2018/08/31(金) 13:05:55.30ID:DXKxWv2O >>481-482
本当に自覚してないようだから教えてあげるけど
そういうくだらない雑談をよそでやんなさいって言ってんの。
それともそのレスになにか価値があるというのなら
どうぞいってください。話を聞くよ?
本当に自覚してないようだから教えてあげるけど
そういうくだらない雑談をよそでやんなさいって言ってんの。
それともそのレスになにか価値があるというのなら
どうぞいってください。話を聞くよ?
484デフォルトの名無しさん
2018/08/31(金) 13:17:47.02ID:ANKbwE4L 子供だなあ
485デフォルトの名無しさん
2018/08/31(金) 13:42:20.88ID:hD6bHOXY このスレは君が価値を感じる書き込みをしなければならないスレではない。
486デフォルトの名無しさん
2018/08/31(金) 13:43:18.09ID:hD6bHOXY キリッ
487デフォルトの名無しさん
2018/08/31(金) 13:44:06.35ID:sUUndK8T ここって5chだよな?
488デフォルトの名無しさん
2018/08/31(金) 13:44:30.70ID:H6r51FSy うん
489デフォルトの名無しさん
2018/08/31(金) 14:03:56.61ID:DXKxWv2O せっかくプログラム板に移動したのに、荒らしは消えないのねw
490デフォルトの名無しさん
2018/08/31(金) 14:48:59.64ID:LaBPL+3F どういうぎゃぐなのかと思わせられるほどの無自覚ぶり。他人に自覚とか言ってるのに
491デフォルトの名無しさん
2018/08/31(金) 15:00:22.51ID:/mKi/Wls )ソ)
ッλ ノ(.,ノ)
(゙- ..::.::. . (
(ソ. .彡⌒ミ. )ソ)
).::'; (´・ω・`) ス (
ソ .::;';'(つ ⊂)::;';'`〜、.
( :;';' |__∧_| ::;';' ヽ)
`'~`'''`'`'`~'~~`~~'`'`''''"`'`'`''`''''"`'``'~`''`'~`'''`'`'`~
さ あ 禿 げ 上 が っ て ま い り ま し た
ッλ ノ(.,ノ)
(゙- ..::.::. . (
(ソ. .彡⌒ミ. )ソ)
).::'; (´・ω・`) ス (
ソ .::;';'(つ ⊂)::;';'`〜、.
( :;';' |__∧_| ::;';' ヽ)
`'~`'''`'`'`~'~~`~~'`'`''''"`'`'`''`''''"`'``'~`''`'~`'''`'`'`~
さ あ 禿 げ 上 が っ て ま い り ま し た
492デフォルトの名無しさん
2018/08/31(金) 15:07:49.61ID:H6r51FSy 頭に刺さってる髪の数だけ書き込みを許してやる
493デフォルトの名無しさん
2018/08/31(金) 15:20:54.53ID:vplIlyda ファイルの更新について教えてください
フラッシュメモリ(SDカード)にファイルを保存しています
ご存知のようにフラッシュメモリには書き換え回数があり
使いすぎると壊れるのですが
シェルでリダイレクトして追記していく形にした場合
追記分のブロック数分が更新されると考えていいのでしょうか
もしくは100バイト追記してもファイルの大きさが100MBあったら
ファイルシステム上再配置されて
フラッシュメモリ上は100MB相当(のブロック)の更新がかかりますか?
またviなどのエディタで更新した場合はどうなのでしょうか?
やはり100MB分の更新になりますか?
フラッシュメモリ(SDカード)にファイルを保存しています
ご存知のようにフラッシュメモリには書き換え回数があり
使いすぎると壊れるのですが
シェルでリダイレクトして追記していく形にした場合
追記分のブロック数分が更新されると考えていいのでしょうか
もしくは100バイト追記してもファイルの大きさが100MBあったら
ファイルシステム上再配置されて
フラッシュメモリ上は100MB相当(のブロック)の更新がかかりますか?
またviなどのエディタで更新した場合はどうなのでしょうか?
やはり100MB分の更新になりますか?
494デフォルトの名無しさん
2018/08/31(金) 16:11:16.42ID:j8UTgVSe >>493
OSやドライバに依存する。
でもだいたいはライトキャッシュがあって実際の書き込みは中々されないと思うよ。
ましてや書き込み回数が多くなると劣化するメデイアと初めからわかっているものに対してバンバン書くようなことは普通のドライバならしないと思う。
OSやドライバに依存する。
でもだいたいはライトキャッシュがあって実際の書き込みは中々されないと思うよ。
ましてや書き込み回数が多くなると劣化するメデイアと初めからわかっているものに対してバンバン書くようなことは普通のドライバならしないと思う。
495デフォルトの名無しさん
2018/08/31(金) 19:32:51.61ID:OUCwI4mz この動きって仕様ですか?
No1と同じような動きを$@を一旦別の変数に入れて
実行したいのですがなにか方法はありますか?
./test.sh "a 1" "b 2"
# No1
for i in "$@"; do
echo $i
done
# a 1
# b 2
# No2
args="$@"
for i in "$args"; do
echo $i
done
# a 1 b 2
# No3
args="$@"
for i in $args; do
echo $i
done
# a
# 1
# b
# 2
No1と同じような動きを$@を一旦別の変数に入れて
実行したいのですがなにか方法はありますか?
./test.sh "a 1" "b 2"
# No1
for i in "$@"; do
echo $i
done
# a 1
# b 2
# No2
args="$@"
for i in "$args"; do
echo $i
done
# a 1 b 2
# No3
args="$@"
for i in $args; do
echo $i
done
# a
# 1
# b
# 2
496デフォルトの名無しさん
2018/08/31(金) 19:46:53.74ID:QWemr4wG >>495
仕様だと思う。
$@の時点ではシェルが解釈した引数ごとに分かれているのに対して
"$@"←のようにしてしまうとそれがひとまとまりに見做されてしまい
結局args="a 1 b 2"と代入していることになる。
仕様だと思う。
$@の時点ではシェルが解釈した引数ごとに分かれているのに対して
"$@"←のようにしてしまうとそれがひとまとまりに見做されてしまい
結局args="a 1 b 2"と代入していることになる。
497デフォルトの名無しさん
2018/08/31(金) 19:51:37.92ID:QWemr4wG 解決方法はevalやらを使って
#! /bin/sh
n=1
for i in "$@"; do
eval "arg$n=\"$i\""
n=$((n + 1))
done
こうやるといいんでは。
arg3とかで「3番目の引数」を参照できるようになってる筈
#! /bin/sh
n=1
for i in "$@"; do
eval "arg$n=\"$i\""
n=$((n + 1))
done
こうやるといいんでは。
arg3とかで「3番目の引数」を参照できるようになってる筈
498デフォルトの名無しさん
2018/08/31(金) 19:53:52.69ID:QWemr4wG ていうか質問の内容から察するに二種類の別の引数を処理したいんだよね?
すなおにPythonとか使ったほうがいいとは思うが……
俺が示したやり方だと引数の位置が絶対参照だし 引数を処理する度に変数が衝突するし
もちろん俺の方法が下手というのもあるが まあシェルスクリプトで引数処理は鬼門であることは間違いない
すなおにPythonとか使ったほうがいいとは思うが……
俺が示したやり方だと引数の位置が絶対参照だし 引数を処理する度に変数が衝突するし
もちろん俺の方法が下手というのもあるが まあシェルスクリプトで引数処理は鬼門であることは間違いない
499デフォルトの名無しさん
2018/08/31(金) 19:59:38.59ID:OUCwI4mz どう解釈すれば、この挙動を理解できますかね?
./test.sh "a 1" "b 2"
for i in "A $@ Z"; do
echo $i
done
# A a 1
# b 2 Z
for i in "A Z"; do
echo $i
done
# A Z
./test.sh "a 1" "b 2"
for i in "A $@ Z"; do
echo $i
done
# A a 1
# b 2 Z
for i in "A Z"; do
echo $i
done
# A Z
500デフォルトの名無しさん
2018/08/31(金) 20:04:13.23ID:4o8e5lPA >>493
シェルの追記はかからない。
vi/vim はかかる。
>> 495
仕様。配列にぶっこむ。
HOGE=("$@")
for ent in "${HOGE[@]}"; do
echo $ent
done
シェルの追記はかからない。
vi/vim はかかる。
>> 495
仕様。配列にぶっこむ。
HOGE=("$@")
for ent in "${HOGE[@]}"; do
echo $ent
done
501デフォルトの名無しさん
2018/08/31(金) 20:20:45.59ID:4o8e5lPA >>499
"A $@ Z" → A\_a\_1_b\_2\_Z
"A Z" → A\_Z
アンダースコアはスペースと思ってくれ。
ダブルクォートはスペースをエスケープしてる。
man に載ってたと思って読んでたが見つからんかった。
"A $@ Z" → A\_a\_1_b\_2\_Z
"A Z" → A\_Z
アンダースコアはスペースと思ってくれ。
ダブルクォートはスペースをエスケープしてる。
man に載ってたと思って読んでたが見つからんかった。
502デフォルトの名無しさん
2018/08/31(金) 20:47:48.56ID:6cxiNGZa man の特殊パラメータの項に書いてあるのはこういうことか?
"A $@ Z" → "A ""$@"" Z"
確かに動作は同じだ。
試したコードはこんな感じ
for i in "$@"; do
echo $i
done
for i in "A $@ Z"; do
echo $i
done
for i in "A ""$@"" Z"; do
echo $i
done
"A $@ Z" → "A ""$@"" Z"
確かに動作は同じだ。
試したコードはこんな感じ
for i in "$@"; do
echo $i
done
for i in "A $@ Z"; do
echo $i
done
for i in "A ""$@"" Z"; do
echo $i
done
503デフォルトの名無しさん
2018/08/31(金) 20:52:30.52ID:OUCwI4mz よくわからんね。 $@がダブルクォートの中に入ってたら
"$1" "$2" ・・・ "$n" に展開されるってことかな?
でもそれだと
# A a 1
こうなる理由がよくわからなんのだよな
"A $@ Z" は
"A $1" "$2" "$3" ・・・ "$n Z" に
展開されているとしか思えない
"$1" "$2" ・・・ "$n" に展開されるってことかな?
でもそれだと
# A a 1
こうなる理由がよくわからなんのだよな
"A $@ Z" は
"A $1" "$2" "$3" ・・・ "$n Z" に
展開されているとしか思えない
504デフォルトの名無しさん
2018/08/31(金) 21:53:31.46ID:KmkRvZ7D505デフォルトの名無しさん
2018/08/31(金) 23:13:07.36ID:QWemr4wG506デフォルトの名無しさん
2018/08/31(金) 23:15:52.07ID:QWemr4wG507デフォルトの名無しさん
2018/08/31(金) 23:29:17.32ID:OUCwI4mz イイかダメかで言えば、arg1、arg2、arg3、・・・では
ループできないのでこれだけではだめですね。
シェルスクリプトにもライブラリが欲しい所ですね
ループできないのでこれだけではだめですね。
シェルスクリプトにもライブラリが欲しい所ですね
508デフォルトの名無しさん
2018/08/31(金) 23:44:36.90ID:4ZfpOo1s そんなもんいらない
そんなん使うぐらいなら別のスクリプトを
シェルから使う
ホントな頭悪いことばっかりいってるわ
そんなん使うぐらいなら別のスクリプトを
シェルから使う
ホントな頭悪いことばっかりいってるわ
509デフォルトの名無しさん
2018/09/01(土) 00:01:57.02ID:Z9gelboG■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 渡邊渚「性を売ってるくせに」批判に反論 幻滅「これが日本の現状だよなー」「『渾身の下着!』というような意味でやってない」★3 [Ailuropoda melanoleuca★]
- 【鮭】20代女性の車のドアノブに体液、不同意わいせつ未遂の容疑で広島市安佐北区の30歳無職男を逮捕 [nita★]
- 【生成ポルノで初】AI生成の児童ポルノ画像の所持疑いで元教諭を初摘発… [BFU★]
- 鈴木農相、地元JAから借入金 おこめ券巡り利害誘導との批判も★2 [安倍聖帝★]
- トランプ米大統領、「台湾保証実行法案」に署名 法案提出議員「支配しようとする中国に我々が断固として立ち向かう」 ★3 [お断り★]
- 【格闘技】朝倉未来「てめえ、今からやってやろうか?」 前代未聞のブチギレ! 関東最大級ギャングの元ボスと一触即発 [冬月記者★]
- 沖縄の在日米軍パトロール、街の治安を乱す輩を一年間で100人逮捕していた [329329848]
- ネトウヨ「外国人は日本の伝統とマナーを守れ!」こいつらが和服を着ないで洋服を着続ける理由とは。スーツなんてイギリスの民族衣装 [472617201]
- フリーレンってなんで旅してるんだっけ
- 【高市悲報】プリキュア「いま私たちは環境問題に関心があるの」 プリオタ「ギェェェェェ思想が強すぎる!!」大炎上🔥 [762037879]
- 女国会議員「夫がサンドイッチ用に6枚切りの食パンを買ってきました…」 ツイ民「6枚切りでもレシピあるよ」 女国会議員(スゥ…) [279254606]
- 【01:45NHK~】サッカーW杯2026グルーブ分け組み合わせ抽選会いよいよスタート! ★2 [339712612]
