1 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:17:50.64 ID:L+B8OP2P.net] シェルスクリプトに関する総合スレッドです。 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 ・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。 シェルスクリプト総合 その30 https://mevius.5ch.net/test/read.cgi/tech/1561989867/
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になくてあれってね シンボリックリンクはあくまで別名だって念頭に置かないといつかやらかしそうだなぁ