シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その30
https://mevius.5ch.net/test/read.cgi/tech/1561989867/
シェルスクリプト総合 その31
■ このスレッドは過去ログ倉庫に格納されています
2019/08/10(土) 23:17:50.64ID:L+B8OP2P
547デフォルトの名無しさん
2019/09/02(月) 08:23:13.45ID:KSSQVEnP >>546
自分を可哀想だと言い始めたら、人生終わりだよ
自分を可哀想だと言い始めたら、人生終わりだよ
548デフォルトの名無しさん
2019/09/02(月) 08:29:03.25ID:mejwNGsW549デフォルトの名無しさん
2019/09/02(月) 09:13:03.84ID:moJkj9e4550デフォルトの名無しさん
2019/09/02(月) 09:29:50.35ID:mejwNGsW551デフォルトの名無しさん
2019/09/02(月) 10:24:24.46ID:PyPzRv4a Bourne ShellとPOSIXシェルの機能の違いはなにか?
という話はどうなりましたか?
という話はどうなりましたか?
552デフォルトの名無しさん
2019/09/02(月) 11:36:53.96ID:PWSlwBbe ※ 忘却の彼方に流れていきました
553デフォルトの名無しさん
2019/09/02(月) 18:30:44.36ID:1C5pGEJg https://tangentsoft.com/misc/unix-shells.svg
POSIX shellと比較するならkshの方が適切な希ガス
POSIX shellと比較するならkshの方が適切な希ガス
554デフォルトの名無しさん
2019/09/02(月) 19:04:17.99ID:PyPzRv4a Bourne ShellとkshだったらBourne Shellの方が有名だろ?
何を持って適切と言ってるのか知らんけど
何を持って適切と言ってるのか知らんけど
555デフォルトの名無しさん
2019/09/02(月) 22:23:56.37ID:8MncpZHQ 逆に言えば有名だから何なんだという話でもあるなw
556デフォルトの名無しさん
2019/09/02(月) 23:36:30.01ID:PyPzRv4a 有名だから聞きたいんだよw
UbuntuとDebianの違いはよく書きれても
UbuntuとLinuxfxの違いなんて気にしないでしょ?
言われて初めて、へー、そんなのあったんだーレベルだから
UbuntuとDebianの違いはよく書きれても
UbuntuとLinuxfxの違いなんて気にしないでしょ?
言われて初めて、へー、そんなのあったんだーレベルだから
557デフォルトの名無しさん
2019/09/02(月) 23:36:49.17ID:PyPzRv4a UbuntuとDebianの違いはよく聞かれても
558デフォルトの名無しさん
2019/09/02(月) 23:45:33.27ID:KSSQVEnP >>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的に正しいの?
$ 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的に正しいの?
559デフォルトの名無しさん
2019/09/02(月) 23:46:05.05ID:KSSQVEnP >>558
letは正しくないからそこは放置でw
letは正しくないからそこは放置でw
560デフォルトの名無しさん
2019/09/03(火) 00:05:50.68ID:zMaEK75z ほぅ…
$ bash -c 'unset a b;echo 10| { read a;let b=a+10;echo $b; }'
20
$ bash -c 'unset a b;echo 10| { read a;let b=a+10;echo $b; }'
20
561デフォルトの名無しさん
2019/09/03(火) 00:13:50.73ID:1Annr1ic >>560
へーそんな挙動するのか。
へーそんな挙動するのか。
562デフォルトの名無しさん
2019/09/03(火) 00:31:57.81ID:KovswbEV パイプの右側がサブシェルになるのかどうかはPOSIXで規定されてない
どちらも間違いじゃないが、bashの動きのほうが多い
どちらも間違いじゃないが、bashの動きのほうが多い
563デフォルトの名無しさん
2019/09/03(火) 01:10:57.53ID:estwIa98 bash --posixでもうっかり配列は動く悲しみ
564デフォルトの名無しさん
2019/09/03(火) 01:31:09.86ID:WJPOiKcg565デフォルトの名無しさん
2019/09/03(火) 02:41:22.59ID:KovswbEV566デフォルトの名無しさん
2019/09/03(火) 02:44:16.76ID:KovswbEV567デフォルトの名無しさん
2019/09/03(火) 02:56:06.66ID:1Annr1ic568デフォルトの名無しさん
2019/09/03(火) 13:39:17.34ID:SNzApyUr これマジ?
569デフォルトの名無しさん
2019/09/03(火) 17:49:01.73ID:U7UFDLpo570デフォルトの名無しさん
2019/09/11(水) 12:29:34.80ID:0GNwCqDq POSIXは他の環境でも動く共通規約
GNUのソフトは高機能だがそれ自体が方言ということ
組み込みは機能を削ぎ落とすため色々知恵が必要
一般人はbashだけ使ってればおk
こんな認識で問題ない?
GNUのソフトは高機能だがそれ自体が方言ということ
組み込みは機能を削ぎ落とすため色々知恵が必要
一般人はbashだけ使ってればおk
こんな認識で問題ない?
571デフォルトの名無しさん
2019/09/11(水) 12:40:30.30ID:3HQIKx2V やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
572デフォルトの名無しさん
2019/09/11(水) 12:52:40.14ID:IEmfVi5w >>570
Linuxユーザーという前提?
POSIXに準拠していれば、多くの環境で動かすことが出来る
GNUはPOSIX準拠+高機能な拡張(標準語+方言)
GNU以外でも多かれ少なかれ拡張されてる
組み込みも完璧ではないが、多くの場合POSIX準拠に近い
一般人はWindowsだけ使ってればおk
dashで動かす必要があるなら、bashの拡張は使えない
Linuxユーザーという前提?
POSIXに準拠していれば、多くの環境で動かすことが出来る
GNUはPOSIX準拠+高機能な拡張(標準語+方言)
GNU以外でも多かれ少なかれ拡張されてる
組み込みも完璧ではないが、多くの場合POSIX準拠に近い
一般人はWindowsだけ使ってればおk
dashで動かす必要があるなら、bashの拡張は使えない
573デフォルトの名無しさん
2019/09/11(水) 12:53:13.99ID:IEmfVi5w >>571
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
574デフォルトの名無しさん
2019/09/11(水) 13:53:14.59ID:/GwFJIf/ winでwsl使えるようになったし、bashが正義じゃないの?
macは知らないw
macは知らないw
575デフォルトの名無しさん
2019/09/11(水) 13:59:37.76ID:ujkZonF+ だからその、WSLのUbuntuの
/bin/sh は dash だっていってんの
/bin/sh は dash だっていってんの
576デフォルトの名無しさん
2019/09/11(水) 14:06:58.77ID:Alp4BtBi aptitude install bash
#!/usr/bin/bash
#!/usr/bin/bash
577デフォルトの名無しさん
2019/09/11(水) 14:18:05.48ID:0GNwCqDq >>572
Mint使ってるけどdashってどんな時に必要なの
軽さが求められるってラズパイやドローン辺り?
MacはBSDだからLinuxのコマンドオプションが使えないってのは面倒そうね
だからってそっちにcoreutils入れるのもアレだが
Mint使ってるけどdashってどんな時に必要なの
軽さが求められるってラズパイやドローン辺り?
MacはBSDだからLinuxのコマンドオプションが使えないってのは面倒そうね
だからってそっちにcoreutils入れるのもアレだが
578デフォルトの名無しさん
2019/09/11(水) 14:38:42.01ID:ujkZonF+ >>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
そんなもん、こんなの重い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
579デフォルトの名無しさん
2019/09/11(水) 15:20:07.21ID:wb8QVF41 bashが使えない環境のほうが特殊だよなぁ
素直に #!/bin/bash で書いときゃいいんじゃね
ところで、#!/usr/bin/env bash って使えるのか?
素直に #!/bin/bash で書いときゃいいんじゃね
ところで、#!/usr/bin/env bash って使えるのか?
580デフォルトの名無しさん
2019/09/11(水) 15:55:05.69ID:ujkZonF+ 特殊だろうがbashが使えない環境は現実として存在してるわけで
581デフォルトの名無しさん
2019/09/11(水) 20:12:45.01ID:sXUhuJjU またひとりで必死だな
582デフォルトの名無しさん
2019/09/11(水) 22:51:13.32ID:zVcNXGaB またお前か
583デフォルトの名無しさん
2019/09/12(木) 00:11:11.54ID:GvsY5hZk 普通にPCでLinux(とWindows)使ってるだけならbashだけでなんにも困らないよなあ
これはLinuxに限らずちゃんとしたUnixを使う場合もそうだけど、客先で使ったり客に何かを提供する場合は気を遣うべきだが
自分で自由にできるAIXやHP-UXならbashインストールすりゃいいんだし
これはLinuxに限らずちゃんとしたUnixを使う場合もそうだけど、客先で使ったり客に何かを提供する場合は気を遣うべきだが
自分で自由にできるAIXやHP-UXならbashインストールすりゃいいんだし
584デフォルトの名無しさん
2019/09/12(木) 01:59:12.99ID:Uy9QyXie つまりPOSIXなんてピエロだとwww
585デフォルトの名無しさん
2019/09/12(木) 02:11:14.84ID:iqiqB/tU オープンソース開発者「そら、お前がお前のためだけのツール作るなら、それでいいだろな。責任もなんにもないし」
586デフォルトの名無しさん
2019/09/12(木) 02:18:54.66ID:xw2iu/gH MITとかの主要なOSSライセンス読んでみろ。
ソフトの使用でどんな損害被っても作者は責任持ちません。
それに同意しないと使えませんて書いてあるだろ。
オープンソース開発者こそ責任もなんもない。そのためのライセンスだから当たり前だが。
何を勘違いしてんのかねこいつはw
ソフトの使用でどんな損害被っても作者は責任持ちません。
それに同意しないと使えませんて書いてあるだろ。
オープンソース開発者こそ責任もなんもない。そのためのライセンスだから当たり前だが。
何を勘違いしてんのかねこいつはw
587デフォルトの名無しさん
2019/09/12(木) 07:53:28.61ID:umd/llTn >>574
macOSもzshがデフォだから実質Bashの機能が使える。
macOSもzshがデフォだから実質Bashの機能が使える。
588デフォルトの名無しさん
2019/09/12(木) 07:54:28.26ID:YLSbOzHc JavaだとJREまるごとついてくるソフトも珍しくなかったし、
今だとコンテナでlibcからなにまで添付。
ストレージの容量に気を使わなくてよくなってるんだから時代に合わせて
開発するのが良いんじゃないかね。
今だとコンテナでlibcからなにまで添付。
ストレージの容量に気を使わなくてよくなってるんだから時代に合わせて
開発するのが良いんじゃないかね。
589デフォルトの名無しさん
2019/09/12(木) 07:55:04.48ID:umd/llTn まーーーたいつもの自称神のPOSIXキチが暴れてんのか。
590デフォルトの名無しさん
2019/09/12(木) 09:05:58.55ID:iqiqB/tU >>587
問題はシバンをどうするかだよ。
zshを使うには#!/usr/bin/zshとしないといけない
bashなら#!/bin/bashだ
だがzshとbashをうまく使い分けてくれるわけじゃない
シバンは#!/bin/shとするしかない
そうするとUbuntuではdashになる
問題はシバンをどうするかだよ。
zshを使うには#!/usr/bin/zshとしないといけない
bashなら#!/bin/bashだ
だがzshとbashをうまく使い分けてくれるわけじゃない
シバンは#!/bin/shとするしかない
そうするとUbuntuではdashになる
591デフォルトの名無しさん
2019/09/12(木) 10:57:28.70ID:d/tSjguy #!/usr/bin/zsh にすればいいだろう、そういう話でもあるのに特定のヤツだけがなぜか拘っているだけだろに
そいつもたいしたもん作ってないくせに
そいつもたいしたもん作ってないくせに
592デフォルトの名無しさん
2019/09/12(木) 11:04:35.83ID:6grXRSs+ だけどそうするとzshが必須になるって話でしょ
593デフォルトの名無しさん
2019/09/12(木) 11:12:45.55ID:d/tSjguy >>587はzshがbashの代替になるという話じゃないの
bashとの違いはあるだろうけど、些細なちょっと直せばいいというのを含んでの
そもそも一般人は=特定の環境で動けばいいだけの人はの話でしょう
bashとの違いはあるだろうけど、些細なちょっと直せばいいというのを含んでの
そもそも一般人は=特定の環境で動けばいいだけの人はの話でしょう
594デフォルトの名無しさん
2019/09/12(木) 11:23:02.84ID:6grXRSs+ 「一般人」をオレオレ定義して語るのはやめましょう
複数の環境を使う一般人もいるわけです
複数の環境を使う一般人もいるわけです
595デフォルトの名無しさん
2019/09/12(木) 11:52:17.18ID:7qK8Dq0y zshスクリプト書くならzsh必須
bashスクリプト書くならbash必須
当たり前の話だ
bashスクリプト書くならbash必須
当たり前の話だ
596デフォルトの名無しさん
2019/09/12(木) 11:55:43.46ID:Xwf8i9TU あたり前田のcracker
597デフォルトの名無しさん
2019/09/12(木) 12:04:51.42ID:d/tSjguy >>594
大多数でもなんでもいいけど、そういう意味だろう。それでも読めなさそうだが
大多数でもなんでもいいけど、そういう意味だろう。それでも読めなさそうだが
598デフォルトの名無しさん
2019/09/12(木) 12:40:22.35ID:6grXRSs+ 一般人を勝手に定義すんなって言ってるのに、
そういう意味だろとか、わかってなさすぎw
一般人にそういう意味はありません
そういう意味だろとか、わかってなさすぎw
一般人にそういう意味はありません
599デフォルトの名無しさん
2019/09/12(木) 12:43:04.42ID:d/tSjguy 話の通じないこだわりぶりは、いつものか
600デフォルトの名無しさん
2019/09/12(木) 12:45:16.02ID:6grXRSs+ >>599
お前が「いつもの」だって言うのはわかってるぞ
お前が「いつもの」だって言うのはわかってるぞ
601デフォルトの名無しさん
2019/09/12(木) 12:45:43.48ID:6grXRSs+ /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
602デフォルトの名無しさん
2019/09/12(木) 12:47:01.39ID:d/tSjguy どういつものなんだか
603デフォルトの名無しさん
2019/09/12(木) 12:54:03.95ID:6grXRSs+ シェルスクリプトの話をしないやつだよ
604デフォルトの名無しさん
2019/09/12(木) 12:56:58.88ID:d/tSjguy 自分でできないのにww
ないすボケと言って欲しいのかw
ないすボケと言って欲しいのかw
605デフォルトの名無しさん
2019/09/12(木) 13:01:35.95ID:6grXRSs+ いいからシェルスクリプトの話をしろよ。まったく
606デフォルトの名無しさん
2019/09/12(木) 13:04:19.98ID:d/tSjguy >>601から全て自分自身に対して言っているのね?なるほど納得
607デフォルトの名無しさん
2019/09/12(木) 17:43:49.36ID:umd/llTn ここまで言われてなおシェルスクリプトと無関係な煽りを書き込めるって相当だぞ
608デフォルトの名無しさん
2019/09/12(木) 18:46:23.43ID:i3mmqxJn exec 2> >(tee -a stderr.log >&2)
後ろの>&2ってどんな意味なんです?
後ろの>&2ってどんな意味なんです?
609デフォルトの名無しさん
2019/09/12(木) 18:46:26.98ID:Um0WsLAR bashが必要になるようなものはそもそも選択する言語が間違ってると思う
610デフォルトの名無しさん
2019/09/12(木) 19:42:51.04ID:WUiTiHRA611デフォルトの名無しさん
2019/09/12(木) 20:41:45.14ID:WUiTiHRA インタラクティブ、もしくは、それ以下のスクリプトでサブシェルのstderrの先を変えようにも変えようがないし、やるならその前でしかなと、意味はなさげと思ったが、
それが入っているスクリプト起動時にリダイレクトする場合には意味があるか。(コンソールへの)stderrいらないから捨てるとか
hoge.sh
#!/bin/bash
exec 2> >(tee -a stderr.log >&2)
...
./hoge.sh 2> /dev/null
>&2があるので、(コンソールへの)stderrはうまく捨てれる
それが入っているスクリプト起動時にリダイレクトする場合には意味があるか。(コンソールへの)stderrいらないから捨てるとか
hoge.sh
#!/bin/bash
exec 2> >(tee -a stderr.log >&2)
...
./hoge.sh 2> /dev/null
>&2があるので、(コンソールへの)stderrはうまく捨てれる
612デフォルトの名無しさん
2019/09/13(金) 17:57:13.42ID:DBJTu1IU 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
そのスクリプトの出処はここだな
出力のプロレス置換ってこう使うのか
入力のプロセス置換はよく使ってるけどそっちはどうもな
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
そのスクリプトの出処はここだな
出力のプロレス置換ってこう使うのか
入力のプロセス置換はよく使ってるけどそっちはどうもな
613デフォルトの名無しさん
2019/09/14(土) 14:53:58.72ID:pQ8OW4Ak プロレス乙
614デフォルトの名無しさん
2019/09/14(土) 15:54:17.46ID:tdzCu94K プロミスの間違い
615デフォルトの名無しさん
2019/09/14(土) 17:27:42.22ID:niUt0I6q サラ金市ね
616デフォルトの名無しさん
2019/09/15(日) 16:58:31.20ID:BxQhi0/5 grepは自身で上書きすると中身空になるけど回避方法ある?要はspongeなんだけども
617デフォルトの名無しさん
2019/09/15(日) 17:06:24.59ID:b8Gz5Yn9 data=$(grep 〜); echo "$data" > 〜
618デフォルトの名無しさん
2019/09/15(日) 17:10:14.49ID:riyG3w3b >>612
こんなのが出たので見るのを止めた。
この接続ではプライバシーが保護されません
sechiro.hatenblog.com では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。詳細
NET::ERR_CERT_COMMON_NAME_INVALID
こんなのが出たので見るのを止めた。
この接続ではプライバシーが保護されません
sechiro.hatenblog.com では、悪意のあるユーザーによって、パスワード、メッセージ、クレジット カードなどの情報が盗まれる可能性があります。詳細
NET::ERR_CERT_COMMON_NAME_INVALID
619デフォルトの名無しさん
2019/09/15(日) 17:13:13.56ID:b8Gz5Yn9 >>618
お前のパソコンなんかおかしくなってるぞw
お前のパソコンなんかおかしくなってるぞw
620デフォルトの名無しさん
2019/09/15(日) 17:15:19.48ID:b8Gz5Yn9 ハッテンブログじゃなくてはてなブログだな
621デフォルトの名無しさん
2019/09/15(日) 17:18:49.85ID:LMFjfaUx hattenblogこわい
622デフォルトの名無しさん
2019/09/15(日) 17:28:57.92ID:4TgO8+RX 5ch では、はてなブログのURL を貼ってはいけない!
書き込み禁止画面が出ずに、いきなり吸い込まれて、
アクセス禁止になるようにしてあるから、超危険!
同様に、twitter の長いURL にも、吸い込まれるものがあるらしい
そこだけ、全角などに変換した方がよい。
hatenblog
書き込み禁止画面が出ずに、いきなり吸い込まれて、
アクセス禁止になるようにしてあるから、超危険!
同様に、twitter の長いURL にも、吸い込まれるものがあるらしい
そこだけ、全角などに変換した方がよい。
hatenblog
623デフォルトの名無しさん
2019/09/15(日) 17:32:44.42ID:4TgO8+RX624デフォルトの名無しさん
2019/09/15(日) 17:37:11.76ID:4TgO8+RX625デフォルトの名無しさん
2019/09/15(日) 17:40:16.44ID:4TgO8+RX626デフォルトの名無しさん
2019/09/15(日) 17:40:54.01ID:h836vV7+ 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
627デフォルトの名無しさん
2019/09/15(日) 18:39:06.79ID:QquDNTIJ628デフォルトの名無しさん
2019/09/15(日) 20:14:01.28ID:riyG3w3b >>619
スマホのChromeなんだけどね。おかしいのかね?よくわからんが。
スマホのChromeなんだけどね。おかしいのかね?よくわからんが。
629デフォルトの名無しさん
2019/09/15(日) 20:17:20.74ID:riyG3w3b630デフォルトの名無しさん
2019/09/16(月) 19:53:43.50ID:vTAkg/qq 16進数(最大二桁 0xFF)から8進数に変換したいんですが
bcを使う以外にsedなどを使った方法とかありますかね…?
$ printf 'obase=8;ibase=16;%s\n' 'FA' | bc
もしあれば,bcは16進数のアルファベットが大文字じゃないといけないし,
POSIX標準とはいえUbuntuとかには既定で導入されてないしで,
あまり使いたいくないんです(わがままですいません)
bcを使う以外にsedなどを使った方法とかありますかね…?
$ printf 'obase=8;ibase=16;%s\n' 'FA' | bc
もしあれば,bcは16進数のアルファベットが大文字じゃないといけないし,
POSIX標準とはいえUbuntuとかには既定で導入されてないしで,
あまり使いたいくないんです(わがままですいません)
631デフォルトの名無しさん
2019/09/16(月) 20:12:04.01ID:Zn9wpmWA printf '%o\n' 0xfa
632デフォルトの名無しさん
2019/09/16(月) 21:17:46.43ID:U9mfWlHU 8進数にパーミッション以外の使いみちなんてあったのか…
633デフォルトの名無しさん
2019/09/16(月) 23:39:17.58ID:LCUbae2V >>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) よりも速いはず
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) よりも速いはず
634デフォルトの名無しさん
2019/09/16(月) 23:43:56.37ID:LCUbae2V 他にも case を使って書けるはず
最大0xFFなら
case $value in
01) 〜
02) 〜
:
[fF][eE])
[fF][fF])
esac
とかねw
たかだか256+α行。頑張ればFF の一桁ずつ処理すれば行は減らせるだろう。
最大0xFFなら
case $value in
01) 〜
02) 〜
:
[fF][eE])
[fF][fF])
esac
とかねw
たかだか256+α行。頑張ればFF の一桁ずつ処理すれば行は減らせるだろう。
635デフォルトの名無しさん
2019/09/16(月) 23:46:42.80ID:LCUbae2V >>633訂正
× oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) ))
○ oct=$(( (0x$hex >> 6) * 100 + (0x$hex >> 3 & 0x7) * 10 + (0x$hex & 0x7) ))
× oct=$(( ($hex >> 6) * 100 + ($hex >> 3 & 0x7) * 10 + ($hex & 0x7) ))
○ oct=$(( (0x$hex >> 6) * 100 + (0x$hex >> 3 & 0x7) * 10 + (0x$hex & 0x7) ))
636デフォルトの名無しさん
2019/09/17(火) 00:06:22.06ID:IA1rgq5F >>632
posixの範囲ではprintfで16進数から文字に変換することが出来ない
printf '\101' # => A
printf '\x41' # bashは変換できるが、dashでは変換できない
バイナリデータの処理など、文字コードを使って処理する必要がある場合は
8進数を使うほうが良い
posixの範囲ではprintfで16進数から文字に変換することが出来ない
printf '\101' # => A
printf '\x41' # bashは変換できるが、dashでは変換できない
バイナリデータの処理など、文字コードを使って処理する必要がある場合は
8進数を使うほうが良い
637デフォルトの名無しさん
2019/09/17(火) 00:09:45.15ID:IA1rgq5F 8進数よりも16進数の方が使い勝手が良いのにパーミッションが8進数なのは、
当時はまだ16進数が発明されてなかったからだったりするのかな?
シェルスクリプトもそうだけど、なんか古い時代は8進数しかなかった感じがする
それとも単なるビット数を節約しただけなんだろうか?
当時はまだ16進数が発明されてなかったからだったりするのかな?
シェルスクリプトもそうだけど、なんか古い時代は8進数しかなかった感じがする
それとも単なるビット数を節約しただけなんだろうか?
638デフォルトの名無しさん
2019/09/17(火) 00:18:14.43ID:kEXgFQM4 7ビット機だったような
639デフォルトの名無しさん
2019/09/17(火) 02:12:04.50ID:sr4VPY0J rwxで3ビットしか使ってない必要ないと思ったからだろう
640デフォルトの名無しさん
2019/09/17(火) 04:55:24.40ID:KdPNzCQK パーミッションの話じゃなくて
641デフォルトの名無しさん
2019/09/17(火) 09:45:35.22ID:3tDP3W6T >>634
ありがとうございます!
ありがとうございます!
642デフォルトの名無しさん
2019/09/17(火) 12:39:27.59ID:e1bW+EWq >>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ビット区切りで表した方が書いた方がわかりやすいのと同じように
>当時はまだ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ビット区切りで表した方が書いた方がわかりやすいのと同じように
643デフォルトの名無しさん
2019/09/17(火) 12:48:38.39ID:N6BvjGdd 昔はなぜか 12bit 15bit 18bit 24bit 36bit あたりのマシンが多い
644デフォルトの名無しさん
2019/09/17(火) 13:26:02.16ID:e1bW+EWq そうなの。見物したスイッチをパチパチしてマシン語を打ち込む当時のコンピュータは16bitだったから、PDP-7(というかPDP-11の前までのDEC)が異端かと思ったw
645デフォルトの名無しさん
2019/09/20(金) 09:32:25.18ID:pw3H64dJ 16進数から8進数への変換って↓
$ hex=fa; printf '%o' $((0x$hex))
↑こういうのだとPOSIX違反?
$ hex=fa; printf '%o' $((0x$hex))
↑こういうのだとPOSIX違反?
646デフォルトの名無しさん
2019/09/20(金) 13:37:02.90ID:fQRmEVoK POSIXは知らんが、 古いzsh? は $((0x$hex)) が使えなくて $((16#$hex)) だった気がする
もしくは $((011)) が zshでは8進数にならなくて $((8#11)) と書かないといけない
という問題だったかもしれない。まあ忘れたw
もしくは $((011)) が zshでは8進数にならなくて $((8#11)) と書かないといけない
という問題だったかもしれない。まあ忘れたw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- お前らがやってるバイト教えて
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 上司がアンパンマン体操のリズムで「アンポンタンは君か〜?」って歌うんやが
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 女だけど友達の家行こうと思ったけど車動かないんだけど
