シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その30
https://mevius.5ch.net/test/read.cgi/tech/1561989867/
シェルスクリプト総合 その31
レス数が1000を超えています。これ以上書き込みはできません。
2019/08/10(土) 23:17:50.64ID:L+B8OP2P
2019/08/10(土) 23:19:50.86ID:L+B8OP2P
お約束
・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです)
つまりシバンは #!/bin/sh です。
特定のシェル(bash, zsh, (m|pd)ksh, (d)ash, yash, posh, fish, (t)csh など)の専用機能に依存する場合は明示しましょう。
macOS (10.14以前), GNU/Linux ユーザー(Debian, Ubuntu 系以外) は /bin/sh の実体が bash なので*特に*注意
自覚なき bashism---シバンが #!/bin/sh なのに bash に依存する構文を使っていませんか?
ただし Debian, Ubuntu などでは /bin/sh の実体は POSIX sh 互換の dash ですのであまり気にしないでも大丈夫です。
FreeBSD ユーザーは /bin/sh の実体が ash なので注意。
Solaris, OpenBSD ユーザーは /bin/sh の実体が ksh なので注意。
macOS 10.15以降のユーザーは/bin/sh の実体が zsh なので注意。
android ユーザーは /bin/sh の実体が mksh なので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。
(参考URL: http://www.speech-lab.org/~hiroki/csh-whynot.euc)
・POSIX に準拠しましょう
有用なリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています。
最新の仕様はこちらへ: http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIX の sh(1) に一番近いのは OpenSolaris 由来の Heirloom sh、次点で Debian などに搭載されている Dash shell
Heirloom sh: http://heirloom.sourceforge.net/sh.html
Dash shell: http://gondor.apana.org.au/~herbert/dash/
・UNIX にはシェルスクリプトに便利な小さなコマンドがいろいろあります
Man ページや各種リンク(http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.htmlなど)を見ましょう。
apropos(1) ないしは man(1) の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです)
つまりシバンは #!/bin/sh です。
特定のシェル(bash, zsh, (m|pd)ksh, (d)ash, yash, posh, fish, (t)csh など)の専用機能に依存する場合は明示しましょう。
macOS (10.14以前), GNU/Linux ユーザー(Debian, Ubuntu 系以外) は /bin/sh の実体が bash なので*特に*注意
自覚なき bashism---シバンが #!/bin/sh なのに bash に依存する構文を使っていませんか?
ただし Debian, Ubuntu などでは /bin/sh の実体は POSIX sh 互換の dash ですのであまり気にしないでも大丈夫です。
FreeBSD ユーザーは /bin/sh の実体が ash なので注意。
Solaris, OpenBSD ユーザーは /bin/sh の実体が ksh なので注意。
macOS 10.15以降のユーザーは/bin/sh の実体が zsh なので注意。
android ユーザーは /bin/sh の実体が mksh なので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。
(参考URL: http://www.speech-lab.org/~hiroki/csh-whynot.euc)
・POSIX に準拠しましょう
有用なリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています。
最新の仕様はこちらへ: http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIX の sh(1) に一番近いのは OpenSolaris 由来の Heirloom sh、次点で Debian などに搭載されている Dash shell
Heirloom sh: http://heirloom.sourceforge.net/sh.html
Dash shell: http://gondor.apana.org.au/~herbert/dash/
・UNIX にはシェルスクリプトに便利な小さなコマンドがいろいろあります
Man ページや各種リンク(http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.htmlなど)を見ましょう。
apropos(1) ないしは man(1) の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
2019/08/10(土) 23:21:14.80ID:L+B8OP2P
初心者へのアドバイス
・適した道具を判断するのも頭の重要な使い方。
シェルスクリプトよりも Per lまたは Python の方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたら man(1) を引きましょう。
・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。
回答者への注意事項
・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに「そういうのはPerl, Python使え」と回答するのはやめましょう。
安易に Perl や Python に逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。
・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。
・例に対して、その例だけ動くコードを書くのはやめましょう。例は例です。本当に実現したいことを文章から読み取りましょう。
・適した道具を判断するのも頭の重要な使い方。
シェルスクリプトよりも Per lまたは Python の方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたら man(1) を引きましょう。
・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。
回答者への注意事項
・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに「そういうのはPerl, Python使え」と回答するのはやめましょう。
安易に Perl や Python に逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。
・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。
・例に対して、その例だけ動くコードを書くのはやめましょう。例は例です。本当に実現したいことを文章から読み取りましょう。
2019/08/10(土) 23:21:34.36ID:L+B8OP2P
2019/08/10(土) 23:57:47.48ID:L+B8OP2P
関連スレ
【Bash】Windows Subsystem for Linux【WSL】6
https://mao.5ch.net/test/read.cgi/linux/1560665525/
Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
【Bash】Windows Subsystem for Linux【WSL】6
https://mao.5ch.net/test/read.cgi/linux/1560665525/
Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
2019/08/11(日) 00:00:50.90ID:GFStkW/c
【POSIX】 sh系互換 シェルスクリプトスレ
https://mevius.5ch.net/test/read.cgi/tech/1535195112/
https://mevius.5ch.net/test/read.cgi/tech/1535195112/
2019/08/11(日) 02:27:44.34ID:d6NgfAAh
テンプレの「Version 7 UNIX の sh(1) に一番近い」ってそんな根拠ある?
むしろ「POSIX shを最もよく実装してる」ほうが適切な表現じゃね?
むしろ「POSIX shを最もよく実装してる」ほうが適切な表現じゃね?
2019/08/11(日) 02:56:20.42ID:GFStkW/c
>>7
Heirloom shのことだとして(意図的だろうけど)POSIX shではなく
レガシーなBourne shellに近いから「Version 7 UNIX の sh(1) に一番近い」なんだよ
つまり、Version 7 UNIX の sh(1) は Bourne shell。
具体的には ArithmeticExpression $((1+2)) や
Parameter substitution のうち ${p#foo} や ${p%bar} みたいな
POSIXの仕様を実装してない。
Heirloom shのことだとして(意図的だろうけど)POSIX shではなく
レガシーなBourne shellに近いから「Version 7 UNIX の sh(1) に一番近い」なんだよ
つまり、Version 7 UNIX の sh(1) は Bourne shell。
具体的には ArithmeticExpression $((1+2)) や
Parameter substitution のうち ${p#foo} や ${p%bar} みたいな
POSIXの仕様を実装してない。
2019/08/11(日) 03:02:13.27ID:GFStkW/c
もちろん次点のdashはPOSIX shを実装してる。
「最も」かどうかはしらんけど
「最も」かどうかはしらんけど
2019/08/11(日) 06:42:57.65ID:d6NgfAAh
>>8
いや根拠ある?(公式文書内の発表とかで。無い気がする。)
しつこくてごめんね。小さいことが気になる性格なの。
Most scripts that run in the Heirloom Bourne Shell will run with any Unix shell that is still in use in the twenty-first century.
http://heirloom.sourceforge.net/sh.html
いや根拠ある?(公式文書内の発表とかで。無い気がする。)
しつこくてごめんね。小さいことが気になる性格なの。
Most scripts that run in the Heirloom Bourne Shell will run with any Unix shell that is still in use in the twenty-first century.
http://heirloom.sourceforge.net/sh.html
2019/08/11(日) 09:06:35.23ID:++HFlOfG
>>10
根拠を自分で考えるってことができない性格なんだねw
根拠を自分で考えるってことができない性格なんだねw
2019/08/11(日) 09:08:41.84ID:++HFlOfG
Version 7 UNIX の sh(1)やHeirloom Bourne Shellが
「POSIX shを最もよく実装してる」という根拠はないよね
(公式文書内の発表とかでw)
「POSIX shを最もよく実装してる」という根拠はないよね
(公式文書内の発表とかでw)
2019/08/11(日) 09:11:01.36ID:++HFlOfG
http://heirloom.sourceforge.net/sh.html
> Although the Bourne shell is not POSIX-conforming
意訳 The Heirloom Bourne Shellは POSIXと互換性がありません
> Although the Bourne shell is not POSIX-conforming
意訳 The Heirloom Bourne Shellは POSIXと互換性がありません
2019/08/11(日) 09:14:38.09ID:++HFlOfG
(あ、これ、いつもの人かな?推論能力が圧倒的に低くて、書いてある内容から
「ゆえにThe Heirloom Bourne Shellは POSIXと互換性がない」を導き出せない)
「ゆえにThe Heirloom Bourne Shellは POSIXと互換性がない」を導き出せない)
2019/08/11(日) 09:16:58.74ID:lm+uP+yI
前スレ埋めてこいよw
2019/08/11(日) 09:42:08.39ID:d6NgfAAh
2019/08/11(日) 09:44:11.25ID:++HFlOfG
あー、やっぱり読み取れないんだ・・・
2019/08/11(日) 09:47:59.57ID:++HFlOfG
かわいそうだから、せめて日本語訳にしてあげるね。
家宝ボーンシェル
家宝のBourneシェルは、伝統的なUnixシェルのポータブル変種です。
OpenSolarisコードから派生している ため、SVR4 / SVID3レベルのシェルを実装しています。
Bourneシェルは
・スクリプトの移植性テスト。
POSIX.2標準は既存のBourneシェルの動作と互換性のないシェルの要件を導入したため、
BourneシェルはPOSIX準拠ではありませんが、すべてのUnixシェルスクリプト言語の父のままです。
Heirloom Bourne Shellで実行されるほとんどのスクリプト は、21世紀にまだ使用されているUnixシェルで実行されます。
POSIX準拠でBourneシェルで使用可能なシェルスクリプトを記述するのは比較的簡単です。
・レガシースクリプトの処理。
いくつかの歴史的なスクリプトは、Bourneシェル独自の言語機能を使用していました。
それらをポータブルシェル言語に変換するのは難しい場合があるため、
Bourneシェルを使用して実行するのが便利な代替手段です。
・一般的なスクリプト処理。
Bourneシェルは、新しいUnixシェルほど多くの機能を提供しませんが、それでも非常に使いやすいスクリプト言語です。
また、Bourneシェルの言語は20年近く安定しており、この実装でも引き続き安定しています。
これにより、プログラマーが慣れ親しんだBourneシェルは驚くことのないスクリプト言語になります。
これは、新しいシェルの多くとは言えません。
・インタラクティブな使用。
Bourneシェルは、jshとして呼び出され 、端末で実行される場合、ジョブ制御を提供します。
もちろん、コマンド履歴、コマンドライン補完などの派手な機能はありません。しかし、これらの機能を使用すると、
ユーザーの注意をそらす傾向があります。慣れの段階の後、Bourneシェルを使用すると、
より均一で集中的な作業スタイルになります。試してみる。真剣に。
家宝ボーンシェル
家宝のBourneシェルは、伝統的なUnixシェルのポータブル変種です。
OpenSolarisコードから派生している ため、SVR4 / SVID3レベルのシェルを実装しています。
Bourneシェルは
・スクリプトの移植性テスト。
POSIX.2標準は既存のBourneシェルの動作と互換性のないシェルの要件を導入したため、
BourneシェルはPOSIX準拠ではありませんが、すべてのUnixシェルスクリプト言語の父のままです。
Heirloom Bourne Shellで実行されるほとんどのスクリプト は、21世紀にまだ使用されているUnixシェルで実行されます。
POSIX準拠でBourneシェルで使用可能なシェルスクリプトを記述するのは比較的簡単です。
・レガシースクリプトの処理。
いくつかの歴史的なスクリプトは、Bourneシェル独自の言語機能を使用していました。
それらをポータブルシェル言語に変換するのは難しい場合があるため、
Bourneシェルを使用して実行するのが便利な代替手段です。
・一般的なスクリプト処理。
Bourneシェルは、新しいUnixシェルほど多くの機能を提供しませんが、それでも非常に使いやすいスクリプト言語です。
また、Bourneシェルの言語は20年近く安定しており、この実装でも引き続き安定しています。
これにより、プログラマーが慣れ親しんだBourneシェルは驚くことのないスクリプト言語になります。
これは、新しいシェルの多くとは言えません。
・インタラクティブな使用。
Bourneシェルは、jshとして呼び出され 、端末で実行される場合、ジョブ制御を提供します。
もちろん、コマンド履歴、コマンドライン補完などの派手な機能はありません。しかし、これらの機能を使用すると、
ユーザーの注意をそらす傾向があります。慣れの段階の後、Bourneシェルを使用すると、
より均一で集中的な作業スタイルになります。試してみる。真剣に。
2019/08/11(日) 09:48:21.88ID:++HFlOfG
これで(他の人は)理解できたやろ?w
2019/08/11(日) 09:55:06.43ID:FACDvm3m
ムキーってなってるの?そんなに連投して
2019/08/11(日) 10:00:36.39ID:++HFlOfG
あそんでるだけやで、昨日からの続きで
2019/08/11(日) 10:05:58.63ID:lm+uP+yI
お前かわいいな
2019/08/11(日) 10:11:58.37ID:FACDvm3m
でも他人が同じようなことしたらムキーっとなってると言うよねえ
2019/08/11(日) 11:19:28.31ID:OeRZAsFl
>>7,10
derived from OpenSolaris code and thus implements the SVR4/SVID3 level
だから、Version 7 UNIX というのはいきなりっぽい
Version 7 UNIX の sh の重要性がまったくわからんが、SVR4 よりは重要、Version 7 UNIX の正当な流れを汲んだうちでの(ソースレベルで?)一番近いから、Version 7 UNIX としたんじゃないかな、そもそもソコを書いた人は
SVID3 は POSIX以前の時期での標準を作ろうとした規格のようなので、「POSIX shを最もよく実装してる」は無いんじゃないかな。SVID3とPOSIXの差異近似がわからんけど
あんま興味ない(使うことはないから)けどチラっと調べた範囲では。調べてもあんま興味わかないなw
derived from OpenSolaris code and thus implements the SVR4/SVID3 level
だから、Version 7 UNIX というのはいきなりっぽい
Version 7 UNIX の sh の重要性がまったくわからんが、SVR4 よりは重要、Version 7 UNIX の正当な流れを汲んだうちでの(ソースレベルで?)一番近いから、Version 7 UNIX としたんじゃないかな、そもそもソコを書いた人は
SVID3 は POSIX以前の時期での標準を作ろうとした規格のようなので、「POSIX shを最もよく実装してる」は無いんじゃないかな。SVID3とPOSIXの差異近似がわからんけど
あんま興味ない(使うことはないから)けどチラっと調べた範囲では。調べてもあんま興味わかないなw
2019/08/11(日) 12:03:55.85ID:d6NgfAAh
いや〜他人を怒らせないようにしてるんだけど
その当の他人がチガイだとどうしようもないなw
その当の他人がチガイだとどうしようもないなw
2019/08/11(日) 12:07:26.43ID:d6NgfAAh
「ムキー!ボクの意見と違うことを言うやつなんて嫌いだー!」
2019/08/11(日) 12:26:49.70ID:OeRZAsFl
落ち着こうなw
2019/08/11(日) 14:43:52.88ID:++HFlOfG
>>24
> Version 7 UNIX の sh の重要性がまったくわからんが
それな。
「Version 7 UNIX の sh(1) に一番近いのは〜」を最初に書いた当時は
まだレガシーなシェルスクリプトが存在したのかもね
このスレ元々UNIX板にあったわけだし
Heirloom shも(世間がPOSIX準拠になりつつある中)
レガシーなスクリプトを処理するために作った書かれてるし
日付を見ると2010年の話?
一般に商用UNIXと呼ばれるもの(macOSは含めない)が
閉鎖的で情報が共有されなくて、質問されても誰も確認できないでしょ?
Linuxばかり使われるようになった。だからその文章も時代に合わない。
次からは修正しておくよ。
> Version 7 UNIX の sh の重要性がまったくわからんが
それな。
「Version 7 UNIX の sh(1) に一番近いのは〜」を最初に書いた当時は
まだレガシーなシェルスクリプトが存在したのかもね
このスレ元々UNIX板にあったわけだし
Heirloom shも(世間がPOSIX準拠になりつつある中)
レガシーなスクリプトを処理するために作った書かれてるし
日付を見ると2010年の話?
一般に商用UNIXと呼ばれるもの(macOSは含めない)が
閉鎖的で情報が共有されなくて、質問されても誰も確認できないでしょ?
Linuxばかり使われるようになった。だからその文章も時代に合わない。
次からは修正しておくよ。
2019/08/11(日) 15:06:11.53ID:++HFlOfG
テンプレで質問
> ・ワイルドカードは正規表現ではありません。
みんなワイルドカードって呼ぶ? MS-DOSではワイルドカードって言ってたけど
なんとなく最近聞かない気がする。かと言ってグロブと呼ぶか?というとそれも詳しい人ぐらいしか
> ・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。
-xオプションと似たやつに-vってのがあるんだね。
みんな使ってる? 俺は使ってみるも、たくさん実行がでてきて面倒くさくて結局見なかったことにしちゃうw
> ・ワイルドカードは正規表現ではありません。
みんなワイルドカードって呼ぶ? MS-DOSではワイルドカードって言ってたけど
なんとなく最近聞かない気がする。かと言ってグロブと呼ぶか?というとそれも詳しい人ぐらいしか
> ・思い通りに動かないときは、まずは sh(1) の -x オプションでトレースしましょう。
-xオプションと似たやつに-vってのがあるんだね。
みんな使ってる? 俺は使ってみるも、たくさん実行がでてきて面倒くさくて結局見なかったことにしちゃうw
2019/08/11(日) 18:20:03.32ID:++HFlOfG
/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった。
今作ってやってみたけど、やっぱり、bashだとecho -n helloは
(POSIXにはない)-nを認識するね。
# which sh
/bin/sh
# /bin/sh
sh-3.2# ls -l /bin/sh
lrwxrwxrwx 1 root root 19 Aug 11 09:14 /bin/sh -> /usr/local/bin/bash
sh-3.2# sh --version
GNU bash, version 3.2.57(1)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
sh-3.2# sh
sh-3.2# echo -n hello
hellosh-3.2# exit
exit
sh-3.2# bash --posix
bash-3.2# echo -n hello
hellobash-3.2#
前スレ>>996はMacかな? (x86_64-apple-darwin18)って書いてるからそうだろうね。
Macの環境はビルドがおかしいのか時折変な動きをする。
今作ってやってみたけど、やっぱり、bashだとecho -n helloは
(POSIXにはない)-nを認識するね。
# which sh
/bin/sh
# /bin/sh
sh-3.2# ls -l /bin/sh
lrwxrwxrwx 1 root root 19 Aug 11 09:14 /bin/sh -> /usr/local/bin/bash
sh-3.2# sh --version
GNU bash, version 3.2.57(1)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
sh-3.2# sh
sh-3.2# echo -n hello
hellosh-3.2# exit
exit
sh-3.2# bash --posix
bash-3.2# echo -n hello
hellobash-3.2#
前スレ>>996はMacかな? (x86_64-apple-darwin18)って書いてるからそうだろうね。
Macの環境はビルドがおかしいのか時折変な動きをする。
2019/08/11(日) 18:24:50.03ID:k+c7cOcw
ええぇ、自分でMacもって言ってなかったかな?
元レスの人のがが何かはわからないが、その可能性はなくもない、だったらの話だが
エアプで見栄であれもこれもと羅列しただけ?w
元レスの人のがが何かはわからないが、その可能性はなくもない、だったらの話だが
エアプで見栄であれもこれもと羅列しただけ?w
2019/08/11(日) 18:24:58.94ID:++HFlOfG
へー、たしかに、macOS Mojaveのデフォルト(homebrewではない)のbash 3.2.57だと
echo -n hello が -n hello になるねw
これはひどいwww
なんでだろ。ちょっと調べてみるか。
その前に一言。だからPOSIX準拠で作れと言っただろー!
echo -n hello が -n hello になるねw
これはひどいwww
なんでだろ。ちょっと調べてみるか。
その前に一言。だからPOSIX準拠で作れと言っただろー!
2019/08/11(日) 18:26:01.24ID:k+c7cOcw
それはお前の自説。うっかりだとしたらしょうがないで済む話
2019/08/11(日) 18:26:26.17ID:k+c7cOcw
てか、自分で確認できるくせにいろいろ妄想吐いていたのどうすんの?
2019/08/11(日) 18:27:23.91ID:++HFlOfG
>>31
デフォルトはHomebrewのbashに切り替えてるのでね。
まさかbashで同じバージョンなのに、Linuxで-nを改行なしオプションと認識して
macOSだと-nを解釈しないとは思わなかった。
まだぐぐってないけど、これ話題になってるんじゃね?
デフォルトはHomebrewのbashに切り替えてるのでね。
まさかbashで同じバージョンなのに、Linuxで-nを改行なしオプションと認識して
macOSだと-nを解釈しないとは思わなかった。
まだぐぐってないけど、これ話題になってるんじゃね?
2019/08/11(日) 18:27:43.86ID:++HFlOfG
>>33
そういうお前の自説を述べられてもw
そういうお前の自説を述べられてもw
2019/08/11(日) 18:28:26.21ID:dSI5JGW8
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
2019/08/11(日) 18:28:44.04ID:k+c7cOcw
ああ、
>/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
って。ああ、ツッコミどころ満載。わくわくしてきだぞw
そんなグダグダのヤツの傲慢な偉そうなご高説、誰が聞くかっw
>/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
って。ああ、ツッコミどころ満載。わくわくしてきだぞw
そんなグダグダのヤツの傲慢な偉そうなご高説、誰が聞くかっw
2019/08/11(日) 18:31:38.54ID:k+c7cOcw
>>31
デフォルトと/bin/shは違うんですけど。/bin/shも書き換えてんのか。OSのアップデートで書き換えられるのに。まあ、ご自由にだから、いちおう信じてあげようw
でも、オマ環を理由にするのは情けないw
結局Appleが悪いにして自分のアホな妄想を否定するのはないんだな。さすがだよ
デフォルトと/bin/shは違うんですけど。/bin/shも書き換えてんのか。OSのアップデートで書き換えられるのに。まあ、ご自由にだから、いちおう信じてあげようw
でも、オマ環を理由にするのは情けないw
結局Appleが悪いにして自分のアホな妄想を否定するのはないんだな。さすがだよ
2019/08/11(日) 18:34:20.63ID:k+c7cOcw
2019/08/11(日) 18:36:37.47ID:++HFlOfG
(macから書き込んでるからID変わってるかも)
まずmacの/bin/shはシンボリックリンクではなく、
またファイルサイズが違っているので /bin/bash と完全に同じものでは無いのがわかる
(おそらくビルドオプションの違いだろう)
$ ls -al /bin/sh /bin/bash
-r-xr-xr-x 1 root wheel 618416 5 4 16:04 /bin/bash
-r-xr-xr-x 1 root wheel 618480 5 4 16:05 /bin/sh
にもかからわず、同じバージョン番号を名乗っている
(ビルドオプションが違うだけだから当然ともいえるが)
$ /bin/sh --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
$ /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
そして想像つく通り、echo -n の挙動が違う
$ /bin/sh -c 'echo -n hello'
-n hello
$ /bin/bash -c 'echo -n hello'
hello%
まずmacの/bin/shはシンボリックリンクではなく、
またファイルサイズが違っているので /bin/bash と完全に同じものでは無いのがわかる
(おそらくビルドオプションの違いだろう)
$ ls -al /bin/sh /bin/bash
-r-xr-xr-x 1 root wheel 618416 5 4 16:04 /bin/bash
-r-xr-xr-x 1 root wheel 618480 5 4 16:05 /bin/sh
にもかからわず、同じバージョン番号を名乗っている
(ビルドオプションが違うだけだから当然ともいえるが)
$ /bin/sh --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
$ /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
そして想像つく通り、echo -n の挙動が違う
$ /bin/sh -c 'echo -n hello'
-n hello
$ /bin/bash -c 'echo -n hello'
hello%
2019/08/11(日) 18:37:50.08ID:k+c7cOcw
だろ?そう言ってたんだけど。なに追試してんの?確認できてどうすんの?
Appleが悪いでうやむやに?
Appleが悪いでうやむやに?
2019/08/11(日) 18:38:56.40ID:++HFlOfG
2019/08/11(日) 18:40:47.34ID:k+c7cOcw
ユーザ作った時のシェルもデフォルトシェルです。てか、そこはいいよ。信じてあげるって言っているんだから
そんなのじゃなくてな、もっと前にお前がレスしたのを始末つけろよ。なんで逃げる?w
そんなのじゃなくてな、もっと前にお前がレスしたのを始末つけろよ。なんで逃げる?w
2019/08/11(日) 18:45:07.11ID:++HFlOfG
2019/08/11(日) 18:45:52.21ID:k+c7cOcw
いや、その俺の攻撃はいいから、お前のやらかしたのを始末つけなさい
47デフォルトの名無しさん
2019/08/11(日) 18:47:21.37ID:2JPwQqrg やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
2019/08/11(日) 18:48:15.91ID:++HFlOfG
まあおかげでPOSIX準拠にするべき理由が一つ増えたじゃないかw
同じbashを使っていても、挙動が違う場合がある
POSIX準拠で書きましょう
同じbashを使っていても、挙動が違う場合がある
POSIX準拠で書きましょう
2019/08/11(日) 18:48:32.49ID:++HFlOfG
>>46
なにもやらかしてないけど?
なにもやらかしてないけど?
2019/08/11(日) 18:48:53.43ID:++HFlOfG
>>47
bash依存するとそうなるだけw
bash依存するとそうなるだけw
2019/08/11(日) 18:49:00.05ID:k+c7cOcw
>>ID:++HFlOfG
なんで逃げる、やらかしたのは明らかだろう。カスなのか?
まあ、想像できるよ、常時偉そうにしたいんだもんな。普通のレス、単純なミスに対してもたかーいところからのいきなりなダメだしとか普通だもんな。そんなお前が自分の過ちを認めたらプライドがズタズタにでもなるんだろう
...カスだなw
なんで逃げる、やらかしたのは明らかだろう。カスなのか?
まあ、想像できるよ、常時偉そうにしたいんだもんな。普通のレス、単純なミスに対してもたかーいところからのいきなりなダメだしとか普通だもんな。そんなお前が自分の過ちを認めたらプライドがズタズタにでもなるんだろう
...カスだなw
2019/08/11(日) 18:49:53.93ID:++HFlOfG
宣言
今度から、echo -n を見かけたら、それはPOSIX準拠してないので
printfを使いましょうと書き込むことにする。
今度から、echo -n を見かけたら、それはPOSIX準拠してないので
printfを使いましょうと書き込むことにする。
2019/08/11(日) 18:50:32.73ID:++HFlOfG
2019/08/11(日) 18:50:49.35ID:k+c7cOcw
2019/08/11(日) 18:52:32.37ID:k+c7cOcw
2019/08/11(日) 18:54:05.02ID:++HFlOfG
http://hints.macworld.com/article.php?story=20071106192548833
> This is not a bug. As OS X 10.5 is now certified to follow the Single Unix Specification, its /bin/sh and echo builtin now follow the specification
なるほど。OSX 10.5から仕様変更されたっぽい。
これAppleがオレオレパッチ当ててるのでは?
bash標準ではなさそうな気がする。
流石にAppleのオレオレパッチまではしらんてw
> This is not a bug. As OS X 10.5 is now certified to follow the Single Unix Specification, its /bin/sh and echo builtin now follow the specification
なるほど。OSX 10.5から仕様変更されたっぽい。
これAppleがオレオレパッチ当ててるのでは?
bash標準ではなさそうな気がする。
流石にAppleのオレオレパッチまではしらんてw
2019/08/11(日) 18:54:43.01ID:++HFlOfG
な?さっきから俺はシェルスクリプトの話題をしてる。
ID:k+c7cOcw は、俺の話題しかしてない(笑)
ID:k+c7cOcw は、俺の話題しかしてない(笑)
2019/08/11(日) 18:55:27.94ID:k+c7cOcw
逃げるばっか。自分でMacも使ってるそのためにもPOSIXとかのたまってたのに
2019/08/11(日) 18:56:17.71ID:++HFlOfG
10.4まではmacOSのbashは-nを改行なしと認識していたそうだ
> In fact, I tried echo -n from bash and sh on my 10.4 system and my Linux system and in all cases,
> the -n was recognised as a switch. On both of those machines, /bin/sh and /bin/bash were identical (in fact, on the Linux box, /bin/sh was a symlink).
> In fact, I tried echo -n from bash and sh on my 10.4 system and my Linux system and in all cases,
> the -n was recognised as a switch. On both of those machines, /bin/sh and /bin/bash were identical (in fact, on the Linux box, /bin/sh was a symlink).
2019/08/11(日) 18:56:22.80ID:k+c7cOcw
>>57
俺はとうに終わってるもん。お前もその俺のレスにレスしてんですけど?さすがだな
俺はとうに終わってるもん。お前もその俺のレスにレスしてんですけど?さすがだな
2019/08/11(日) 18:56:59.72ID:k+c7cOcw
(ごまかしたくてしょうがないのがアリアリ)
2019/08/11(日) 18:58:37.20ID:++HFlOfG
2019/08/11(日) 18:59:22.71ID:++HFlOfG
2019/08/11(日) 19:03:26.79ID:k+c7cOcw
2019/08/11(日) 19:04:18.13ID:k+c7cOcw
>>63
意味わからんwさすがだな。POSIX原理主義者はやっぱり変なヤツと思うことにするぞw
意味わからんwさすがだな。POSIX原理主義者はやっぱり変なヤツと思うことにするぞw
2019/08/11(日) 19:05:17.46ID:k+c7cOcw
ああ、やらかしたのをうやむやにするためにか...なるほど
2019/08/11(日) 19:06:30.10ID:++HFlOfG
確認取れた。やっぱり-nを改行なしと認識しないのは、bashの動きではなく
Appleによるパッチみたいだ
http://hints.macworld.com/article.php?story=20071106192548833 の下の方に書いてあるけど
COMMAND_MODE=legacy /bin/sh -c 'echo -n hello'
と書いたら-nを改行なしオプションと認識した(legacy 笑)
この COMMAND_MODE は bashの機能ではなくAppleが用意したもの
https://developer.apple.com/library/archive/releasenotes/Darwin/RN-Unix03Conformance/
macOS特有の動きだから、それを「bashでは」いうのはおかしいね。
Appleによるパッチみたいだ
http://hints.macworld.com/article.php?story=20071106192548833 の下の方に書いてあるけど
COMMAND_MODE=legacy /bin/sh -c 'echo -n hello'
と書いたら-nを改行なしオプションと認識した(legacy 笑)
この COMMAND_MODE は bashの機能ではなくAppleが用意したもの
https://developer.apple.com/library/archive/releasenotes/Darwin/RN-Unix03Conformance/
macOS特有の動きだから、それを「bashでは」いうのはおかしいね。
2019/08/11(日) 19:09:29.22ID:++HFlOfG
>>64
お前が俺にグダグダ言ってる間に答えを見つけたよ。
オマ環じゃなくて、macOS環境
お前は、bashは-nを認識しない(そのまま-nと出力される)と言っていたが、
それが間違いだとわかったよ。
bashは-nを改行なしオプションとして認識するのは正しい。(俺が今までLinuxで検証していたとおり)
ただしAppleがビルドした改変版bashでは、 Single Unix Specificationに準拠するために
POSIXでは規定されてない-nをそのまま出力されるようになってる。
まあこういう違いがあるから、やっぱりPOSIX準拠は大切だね。
お前が俺にグダグダ言ってる間に答えを見つけたよ。
オマ環じゃなくて、macOS環境
お前は、bashは-nを認識しない(そのまま-nと出力される)と言っていたが、
それが間違いだとわかったよ。
bashは-nを改行なしオプションとして認識するのは正しい。(俺が今までLinuxで検証していたとおり)
ただしAppleがビルドした改変版bashでは、 Single Unix Specificationに準拠するために
POSIXでは規定されてない-nをそのまま出力されるようになってる。
まあこういう違いがあるから、やっぱりPOSIX準拠は大切だね。
2019/08/11(日) 19:10:38.51ID:k+c7cOcw
>>67
俺のレスをよく読もうな。書いてからお前がイチャモンwつけたんだからな
Macを持ってないとかならまだ許すが、自分で自らそのためにもPOSIXというひとつに挙げておいて、確認もせず、オマ環を自分で作ってそれも忘れ、
いろいろ忘れ、トンチキな妄想を吐いていたにもかかわらず、なかったことに&なにか知らんがwごまかしとしか思えないまったく真摯な態度が皆無なヤツです、いつもの高慢ちきは
と(改めてw)証明wできたので、満足しとくわw
俺のレスをよく読もうな。書いてからお前がイチャモンwつけたんだからな
Macを持ってないとかならまだ許すが、自分で自らそのためにもPOSIXというひとつに挙げておいて、確認もせず、オマ環を自分で作ってそれも忘れ、
いろいろ忘れ、トンチキな妄想を吐いていたにもかかわらず、なかったことに&なにか知らんがwごまかしとしか思えないまったく真摯な態度が皆無なヤツです、いつもの高慢ちきは
と(改めてw)証明wできたので、満足しとくわw
2019/08/11(日) 19:12:20.49ID:k+c7cOcw
2019/08/11(日) 19:14:12.80ID:++HFlOfG
>>64
> macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。
お前、macOSしかbash動く環境知らんのか?
bashはGNUプロジェクトで作られたもので、GNU環境(例 Linux)が一番に確認すべき環境だろ
bashでの動きの話をしてるんだから、Linuxで検証するのが一番手っ取り早い。macOSの話を持ち出したのは「お前が」「あとからだ」
Debinaでは/bin/shの実体はdashなんだから、/bin/shの実体がbashの場合の挙動を確認するには環境を作らなければいけない
もっとも、macOSでは、/bin/shは/bin/bashへのシンボリックリンクではなく
本物のbashでもなく、Appleによる改変版bashだったわけだけど
> macOS使ってるなら/bin/shがbashだとわかっているだろうに。なぜ/bin/shをbashにする環境作るのがとかのたまうのかわからん。
お前、macOSしかbash動く環境知らんのか?
bashはGNUプロジェクトで作られたもので、GNU環境(例 Linux)が一番に確認すべき環境だろ
bashでの動きの話をしてるんだから、Linuxで検証するのが一番手っ取り早い。macOSの話を持ち出したのは「お前が」「あとからだ」
Debinaでは/bin/shの実体はdashなんだから、/bin/shの実体がbashの場合の挙動を確認するには環境を作らなければいけない
もっとも、macOSでは、/bin/shは/bin/bashへのシンボリックリンクではなく
本物のbashでもなく、Appleによる改変版bashだったわけだけど
2019/08/11(日) 19:16:41.36ID:k+c7cOcw
>>71
トンチンカンすぎるな。めちゃくちゃ。最後だぞw安心しろww
/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
Macあるやん、macOS使ってお前ほどの自称知っている人なら知ってるハズだろ
だよ。なにをトンチンカンなことを。まあ、わかるよ、ごまかすのに必死なのは。アホらしい
トンチンカンすぎるな。めちゃくちゃ。最後だぞw安心しろww
/bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
Macあるやん、macOS使ってお前ほどの自称知っている人なら知ってるハズだろ
だよ。なにをトンチンカンなことを。まあ、わかるよ、ごまかすのに必死なのは。アホらしい
2019/08/11(日) 19:18:47.82ID:dSI5JGW8
相手は神様なんだから敬ってやれよ
> From: [36] デフォルトの名無しさん <sage>
> Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG
>
> 現実世界では私は神なのだ
> From: [36] デフォルトの名無しさん <sage>
> Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG
>
> 現実世界では私は神なのだ
2019/08/11(日) 19:19:19.67ID:++HFlOfG
2019/08/11(日) 19:19:54.10ID:k+c7cOcw
2019/08/11(日) 19:20:19.99ID:++HFlOfG
>>72
> /bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
> Macあるやん、
Macでは/bin/shの実体は/bin/bashではない。バイナリが違ってる。
ってさっき書かなかったか?
> /bin/shの実体が/bin/bashになってる環境がなかったから時間がかかった
> Macあるやん、
Macでは/bin/shの実体は/bin/bashではない。バイナリが違ってる。
ってさっき書かなかったか?
2019/08/11(日) 19:21:29.72ID:++HFlOfG
2019/08/11(日) 19:23:55.89ID:k+c7cOcw
2019/08/11(日) 19:24:54.08ID:++HFlOfG
この話スレ建てる前に知りたかったなー。
macOS (10.14以前), は /bin/sh の実体が (Apple改変版)bash なので*特に*注意
って書き直したい
macOS (10.14以前), は /bin/sh の実体が (Apple改変版)bash なので*特に*注意
って書き直したい
2019/08/11(日) 19:35:35.33ID:++HFlOfG
これはひどいwww
http://moriyoshi.はてなぶろぐ.com/entry/20090208/1234108045
> Leopard の「ターミナル」で、/bin/sh の echo -n がおかしい挙動を示します。
>
> sh-3.2$ echo -n foo
> -n foo
> sh-3.2$
> 分ったこと:
>
> /bin/sh は bash だが、/bin/bash とは違うもの
> which echo すると /bin/echo と言われるが、built-in のようだ
> iTerm から起動すると echo -n はちゃんと動く
> ターミナルで /bin/sh の echo は、iBCS2 コンパチとして動くのでしょうか?
> google しても解決方法は分りませんでした。ご存知の方は教えて下さい。(_ _)
> ...
>
> kzysk: なぜか iTerm は環境変数 COMMAND_MODE=legacy, ターミナルは unix2003 になっていて、
> その違いで sh 上の echo の動きがかわるらしいです。
http://moriyoshi.はてなぶろぐ.com/entry/20090208/1234108045
> Leopard の「ターミナル」で、/bin/sh の echo -n がおかしい挙動を示します。
>
> sh-3.2$ echo -n foo
> -n foo
> sh-3.2$
> 分ったこと:
>
> /bin/sh は bash だが、/bin/bash とは違うもの
> which echo すると /bin/echo と言われるが、built-in のようだ
> iTerm から起動すると echo -n はちゃんと動く
> ターミナルで /bin/sh の echo は、iBCS2 コンパチとして動くのでしょうか?
> google しても解決方法は分りませんでした。ご存知の方は教えて下さい。(_ _)
> ...
>
> kzysk: なぜか iTerm は環境変数 COMMAND_MODE=legacy, ターミナルは unix2003 になっていて、
> その違いで sh 上の echo の動きがかわるらしいです。
81デフォルトの名無しさん
2019/08/11(日) 22:27:57.25ID:tjpar2Yg やっぱりどこでも動くシェルスクリプトなんて妄想なんだねw
2019/08/11(日) 22:34:19.90ID:owKtPG/2
POSIX準拠を意識してない未熟ものにとってはそうなんだろうな
2019/08/11(日) 22:39:31.82ID:owKtPG/2
POSIX準拠を意識している者にとっては、-nが使えないとか
想定の範囲内だからね。yashとか使えないわけだし。
だから最初から-nを使うぐらいならprintfを使ってる。
POSIX準拠でコードを書いてる人にとっては何ら問題ないわけ
想定の範囲内だからね。yashとか使えないわけだし。
だから最初から-nを使うぐらいならprintfを使ってる。
POSIX準拠でコードを書いてる人にとっては何ら問題ないわけ
2019/08/11(日) 22:58:12.04ID:tux8oNSc
あれだけアホ晒しても僕偉いww
2019/08/11(日) 23:02:56.27ID:owKtPG/2
俺が偉く見えてしまうのは、あんたの主観だから俺にはどうしようもないw
2019/08/11(日) 23:05:15.27ID:tux8oNSc
>POSIX準拠を意識してない未熟もの
不特定多数が含まれるというのがわからないのね
さすがあれだけアホ晒しても僕偉い人ww
不特定多数が含まれるというのがわからないのね
さすがあれだけアホ晒しても僕偉い人ww
2019/08/11(日) 23:08:19.13ID:owKtPG/2
不特定多数が含まれるからなんだっていうんだろう?
2019/08/11(日) 23:10:58.42ID:tux8oNSc
すげえよっ、さすがあれだけアホ晒しても僕偉い人ww脳の中身理解不能
2019/08/12(月) 00:45:59.42ID:OLWOasI9
なんでスレ進んでたのかと思ったらまたはしゃいでたのか
2019/08/12(月) 00:50:54.61ID:kdU0FwTT
神様なんだろ。許してやれ
(しかしネットは怖いな。やらかしたことがほぼ一生残る。)
(しかしネットは怖いな。やらかしたことがほぼ一生残る。)
2019/08/12(月) 00:56:58.46ID:LRX4Utg1
なにやらかしたの?
2019/08/12(月) 01:16:22.35ID:Mlg83N6h
よくわからん。揚げ足で騒いでるように見える。
2019/08/12(月) 01:48:53.53ID:kdU0FwTT
揚げ足というか、単に普通の失敗(理解不足)なんだけどな。
謝らないのが問題だった。
素直に謝罪しておけばよかったものを…。
謝らないのが問題だった。
素直に謝罪しておけばよかったものを…。
2019/08/12(月) 02:03:12.93ID:tYO0tRVG
謝罪しろって韓国かよw
2019/08/12(月) 02:05:47.65ID:U5E/4roV
Mac特有の挙動(UNIXの要求に合わせるためにAppleが独自で変更してる)なのに
それに気づかないで、bashでは-nに対応してないって騒いでたんだっけ?
それに気づかないで、bashでは-nに対応してないって騒いでたんだっけ?
2019/08/12(月) 03:01:38.96ID:vrbZPf3l
そう。挙句の果てに、Macでテストしてなかった
お前が悪いとか言って荒らし始めた。
お前が悪いとか言って荒らし始めた。
2019/08/12(月) 05:08:02.14ID:kdU0FwTT
自分に都合が悪くなるとすぐ韓国とかよく分からんこと持ちだして話を逸らすあたり,
これは重症っすね……。
これは重症っすね……。
2019/08/12(月) 08:13:29.23ID:TQ9KMPr7
これは人が離れて行くのも無理はないな
・自分の誤りを絶対に認めない
・人間関係は上下の主従関係のみで平等の概念がない
どこかで見たことあるような...おや、誰か来たようだ
・自分の誤りを絶対に認めない
・人間関係は上下の主従関係のみで平等の概念がない
どこかで見たことあるような...おや、誰か来たようだ
2019/08/12(月) 08:14:46.28ID:d52ffprB
たしか前スレでも、質問してる側が下なんだから
回答する側に対してへりくだれ的なことを言ってたよな
回答する側に対してへりくだれ的なことを言ってたよな
100デフォルトの名無しさん
2019/08/12(月) 08:16:14.37ID:d52ffprB101デフォルトの名無しさん
2019/08/12(月) 08:22:26.39ID:TQ9KMPr7 あ、ひとつ忘れてた
・論点のすり替えが上手
・論点のすり替えが上手
102デフォルトの名無しさん
2019/08/12(月) 08:38:45.76ID:HKovfvTl またこいつは朝からシェルスクリプト「ではない」話をしてんのか
103デフォルトの名無しさん
2019/08/12(月) 11:05:57.03ID:kdU0FwTT そうせざるえないほど酷い人がいるからね。
このスレの住人は結構優しいんじゃないかな。
人格欠陥者を罵しったり無視することは簡単だけど,
その欠点を皆で指摘してくれるなんてかなり貴重だと思う。
まあどうせ当の本人は自分に対する攻撃としか捉えず,
都合の悪いことには目を塞ぐ能力をフル活用して目を翥すんだろうが。
このスレの住人は結構優しいんじゃないかな。
人格欠陥者を罵しったり無視することは簡単だけど,
その欠点を皆で指摘してくれるなんてかなり貴重だと思う。
まあどうせ当の本人は自分に対する攻撃としか捉えず,
都合の悪いことには目を塞ぐ能力をフル活用して目を翥すんだろうが。
104デフォルトの名無しさん
2019/08/12(月) 11:48:18.69ID:7x51tVmW bash 依存だけどこんな関数を作って使ってた事もあった
function _join {
local IFS="$1"; shift; echo "$*"
}
bash$ _join , {1..10}
1,2,3,4,5,6,7,8,9,10
function _join {
local IFS="$1"; shift; echo "$*"
}
bash$ _join , {1..10}
1,2,3,4,5,6,7,8,9,10
105デフォルトの名無しさん
2019/08/12(月) 11:51:12.48ID:OLWOasI9 いくらID変えても同じ言動なのがいよね
欲を言えばコテを付けてくれれば処分しやすいんだけど
欲を言えばコテを付けてくれれば処分しやすいんだけど
106デフォルトの名無しさん
2019/08/12(月) 12:15:08.81ID:kdU0FwTT ていうか3スレくらい前からワッチョイ導入しようという話がチョイチョイ出てはいる。
107デフォルトの名無しさん
2019/08/12(月) 15:40:50.17ID:FEiQT6YL >>104
それをbash依存にしないのは簡単だよ
localの代わりにサブシェルを使えばいい
_join {
(IFS=$1; shift; echo "$*")
}
ちなみにlocalはPOSIX準拠じゃないけど、
local もしくは localと同等のことができるtypeset のどちらかが
POSIX準拠シェルのすべてに(おそらく)搭載されてるから
2パターン作ることになるが、サブシェルを使わずに作ることも可能
面倒だからOLDIFSに対比させるのが楽だけどねw
それをbash依存にしないのは簡単だよ
localの代わりにサブシェルを使えばいい
_join {
(IFS=$1; shift; echo "$*")
}
ちなみにlocalはPOSIX準拠じゃないけど、
local もしくは localと同等のことができるtypeset のどちらかが
POSIX準拠シェルのすべてに(おそらく)搭載されてるから
2パターン作ることになるが、サブシェルを使わずに作ることも可能
面倒だからOLDIFSに対比させるのが楽だけどねw
108デフォルトの名無しさん
2019/08/12(月) 16:10:50.92ID:7x51tVmW _join () (IFS=$1; shift; echo "$*")
でいいんじゃね
でいいんじゃね
109デフォルトの名無しさん
2019/08/12(月) 16:15:47.05ID:FEiQT6YL >>108
その書式、使えないシェルがあるんだよ。
その書式、使えないシェルがあるんだよ。
110デフォルトの名無しさん
2019/08/12(月) 16:18:53.19ID:7x51tVmW IFSを使う場合はデリミタに1文字しか使えないので
その後はこんな↓ふうに書き直した(けど最近は全く使うことがない)
function _join {
local d="$1"; shift; printf '%s' "$1"; shift;
printf '%s' "${@/#/$d}"; echo;
}
$ _join '->' {{1..4},5,{4..1..-1}}
1->2->3->4->5->4->3->2->1
その後はこんな↓ふうに書き直した(けど最近は全く使うことがない)
function _join {
local d="$1"; shift; printf '%s' "$1"; shift;
printf '%s' "${@/#/$d}"; echo;
}
$ _join '->' {{1..4},5,{4..1..-1}}
1->2->3->4->5->4->3->2->1
111デフォルトの名無しさん
2019/08/12(月) 16:20:03.86ID:FEiQT6YL あ、でも今調べたら相当古いbashだけみたい。ならいいか
112デフォルトの名無しさん
2019/08/12(月) 16:20:31.00ID:VzSWusfF shellcheck のような書き方を指導する奴で
POSIX準拠の書き方でないところをチェックするツールでもあるのか?
滅茶苦茶詳しすぎる
POSIX準拠の書き方でないところをチェックするツールでもあるのか?
滅茶苦茶詳しすぎる
113デフォルトの名無しさん
2019/08/12(月) 16:37:37.51ID:FEiQT6YL >>110
それをbash依存なくするにはループだろうな
たぶん誰でもわかると思うのでコードは省略w
local変数使わなくても行けるかも
>>112
shellcheck 以外だと使ったことがないけど shfmt
・・・でチェックできるのか知らない。使い方がよくわからないw
shfmtという名前を忘れたのでぐぐったら bash依存チェックするツールがあったよw
https://sourceforge.net/projects/checkbaskisms/
https://github.com/openstack/bashate
俺はもうだいたい覚えたね。POSIX準拠の書き方を調べたと言うよりも
とあるシェルで動かない。なんでや?POSIX準拠じゃないんかい。の繰り返しで。
だからPOSIX準拠だけど、シェルのバグで動かないっていうのも頭に入ってる。
それをbash依存なくするにはループだろうな
たぶん誰でもわかると思うのでコードは省略w
local変数使わなくても行けるかも
>>112
shellcheck 以外だと使ったことがないけど shfmt
・・・でチェックできるのか知らない。使い方がよくわからないw
shfmtという名前を忘れたのでぐぐったら bash依存チェックするツールがあったよw
https://sourceforge.net/projects/checkbaskisms/
https://github.com/openstack/bashate
俺はもうだいたい覚えたね。POSIX準拠の書き方を調べたと言うよりも
とあるシェルで動かない。なんでや?POSIX準拠じゃないんかい。の繰り返しで。
だからPOSIX準拠だけど、シェルのバグで動かないっていうのも頭に入ってる。
114デフォルトの名無しさん
2019/08/12(月) 16:53:21.75ID:FEiQT6YL115デフォルトの名無しさん
2019/08/13(火) 12:23:48.45ID:PvshuRsa $ ksh -c 'echo $KSH_VERSION'
Version AJM 93u+ 2012-08-01
これのAJMはなんだろう?と思ってググったけど、
コンパイル時のオプションってことでいいのかな?
https://www.in-ulm.de/~mascheck/various/shells/ksh_versions.html
After "Version" now there is a concatenation of letters indicating compile time options:
A SHOPT_AUDIT /* keyboard logging */
B SHOPT_BASH /* bash compatibility code */
L SHOPT_ACCT /* accounting */
M SHOPT_MULTIBYTE /* multibyte character handling */
Jはこれ?
J SHOPT_COSHELL /* job pools */
Version AJM 93u+ 2012-08-01
これのAJMはなんだろう?と思ってググったけど、
コンパイル時のオプションってことでいいのかな?
https://www.in-ulm.de/~mascheck/various/shells/ksh_versions.html
After "Version" now there is a concatenation of letters indicating compile time options:
A SHOPT_AUDIT /* keyboard logging */
B SHOPT_BASH /* bash compatibility code */
L SHOPT_ACCT /* accounting */
M SHOPT_MULTIBYTE /* multibyte character handling */
Jはこれ?
J SHOPT_COSHELL /* job pools */
116デフォルトの名無しさん
2019/08/15(木) 23:08:43.05ID:xN8IaB/K 前スレでboshのビルドができないと言っていた人へ
2019-08-13版でビルドできるようになってます。
2019-06-13 OK
2019-07-15 NG
2019-07-22 NG
2019-08-13 OK
2019-08-13版でビルドできるようになってます。
2019-06-13 OK
2019-07-15 NG
2019-07-22 NG
2019-08-13 OK
117デフォルトの名無しさん
2019/08/17(土) 20:53:09.43ID:R5VCpMP+ POSIXで定義されてるbatchとかatとかって使ってる?
俺は可搬性を失なう覚悟でcron使ってるけど
俺は可搬性を失なう覚悟でcron使ってるけど
118デフォルトの名無しさん
2019/08/17(土) 21:03:17.18ID:He41kTu9 pythonで mycron.pyを書いた
python さえ動けば
python さえ動けば
119デフォルトの名無しさん
2019/08/17(土) 21:23:22.11ID:g4f/iCif120デフォルトの名無しさん
2019/08/17(土) 21:26:52.13ID:g4f/iCif ん?cronはPOSIXじゃないけど、crontabはPOSIXなのか?
これはコマンドは決まってるけど、それを実現しているものは決まってないってことなのかな?
これはコマンドは決まってるけど、それを実現しているものは決まってないってことなのかな?
121デフォルトの名無しさん
2019/08/17(土) 21:30:38.30ID:R5VCpMP+122デフォルトの名無しさん
2019/08/18(日) 13:02:29.86ID:zqR8kD3Y123デフォルトの名無しさん
2019/08/18(日) 13:29:09.33ID:KK6bG3/n いつまでも完成しそうもない開発系?のツールなんかより
dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
だからいつまで経ってもMacのコマンドは貧弱でhomebrewでcoreutilsを入れなければいけなくなる
LinuxをバンドルしたWSLは便利になった。
dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
だからいつまで経ってもMacのコマンドは貧弱でhomebrewでcoreutilsを入れなければいけなくなる
LinuxをバンドルしたWSLは便利になった。
124デフォルトの名無しさん
2019/08/18(日) 19:00:47.29ID:zqR8kD3Y 単に拡張すりゃいいってもんじゃない。
どのシステムでも使えることを優先すべき。
どのシステムでも使えることを優先すべき。
125デフォルトの名無しさん
2019/08/19(月) 03:40:41.24ID:ZZoimR+D >>123
> dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
それな。 date +%s がPOSIX準拠じゃないとかびっくりやわw
unix timeどうすりゃいいねん。
> dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
それな。 date +%s がPOSIX準拠じゃないとかびっくりやわw
unix timeどうすりゃいいねん。
126デフォルトの名無しさん
2019/08/19(月) 04:03:23.22ID:M9mgefHn127デフォルトの名無しさん
2019/08/19(月) 07:34:11.92ID:JcVwKxxm >>126
それに対応することによる各社のメリットとは?
それに対応することによる各社のメリットとは?
128デフォルトの名無しさん
2019/08/19(月) 08:34:19.51ID:xlQPwL5+ ないだろJK
129デフォルトの名無しさん
2019/08/19(月) 08:35:48.66ID:xlQPwL5+ ていうか言語仕様の素早い更新・機能追加が好きならPython使えば?
過去互換性も同じくらい重視したいならC#-shell
過去互換性も同じくらい重視したいならC#-shell
130デフォルトの名無しさん
2019/08/19(月) 09:33:40.73ID:W8+ngSHm >>127
なんのためにPOSIXが出来て、みんなそれに対応してると思ってるの?
なんのためにPOSIXが出来て、みんなそれに対応してると思ってるの?
131デフォルトの名無しさん
2019/08/19(月) 09:48:50.15ID:JcVwKxxm >>130
当時と現在の状況の違いが理解できない理想主義の人?
当時と現在の状況の違いが理解できない理想主義の人?
132デフォルトの名無しさん
2019/08/19(月) 09:51:47.61ID:W/U4wDij 現在ってまだPOSIX改定されてるでしょ?
歩みが遅いことを批判するのは正しいが、
そこにPOSIXはもういらないっていうのは、
POSIXの存在を否定してるよ。
歩みが遅いことを批判するのは正しいが、
そこにPOSIXはもういらないっていうのは、
POSIXの存在を否定してるよ。
133デフォルトの名無しさん
2019/08/19(月) 09:54:30.67ID:xlQPwL5+134デフォルトの名無しさん
2019/08/19(月) 09:59:46.47ID:W/U4wDij135デフォルトの名無しさん
2019/08/19(月) 10:13:25.39ID:U/sDEGN5 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
136デフォルトの名無しさん
2019/08/19(月) 11:28:24.99ID:xlQPwL5+ 文体がちょっと違うから危うく荒しに構うところだった。
いつものチガイか。
いつものチガイか。
137デフォルトの名無しさん
2019/08/19(月) 11:36:19.43ID:JcVwKxxm138デフォルトの名無しさん
2019/08/19(月) 11:40:44.54ID:W/U4wDij139デフォルトの名無しさん
2019/08/19(月) 12:46:41.76ID:IzREAmBO シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。
システムとして実用的なレベルまで規格拡張しないと使いものにならない。
現状のPOSIXは最低限のI/F仕様を規格化するだけの中途半端な規格だ。
将来的にネットワーク、ハードウェア管理、セキュリティなどシステムとしての仕様が標準化され、全てのシステムがそれに準拠するまでは、POSIXに固執する必要性は無いと言っていい。
もちろん、可能な範囲で可搬性を追求することは間違いではないと思うぞ。現状では限界があるということだ。
システムとして実用的なレベルまで規格拡張しないと使いものにならない。
現状のPOSIXは最低限のI/F仕様を規格化するだけの中途半端な規格だ。
将来的にネットワーク、ハードウェア管理、セキュリティなどシステムとしての仕様が標準化され、全てのシステムがそれに準拠するまでは、POSIXに固執する必要性は無いと言っていい。
もちろん、可能な範囲で可搬性を追求することは間違いではないと思うぞ。現状では限界があるということだ。
140デフォルトの名無しさん
2019/08/19(月) 12:51:57.60ID:4iryI+Qn 現実として問題になってるのは、半ば当たり前のように書かれる
Linuxで動くコマンドが、macOSで動かないことだよな
ググって、なるほどこれでできるのか、って思ってもmacOSで動かないのは問題
Linuxで動くコマンドが、macOSで動かないことだよな
ググって、なるほどこれでできるのか、って思ってもmacOSで動かないのは問題
141デフォルトの名無しさん
2019/08/19(月) 12:52:53.15ID:4iryI+Qn142デフォルトの名無しさん
2019/08/19(月) 12:58:21.94ID:IzREAmBO143デフォルトの名無しさん
2019/08/19(月) 13:02:42.41ID:4iryI+Qn >>142
主張がよくわからないんだけど
「シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。」から、
現状のPOSIXは中途半端で、もっといいものにするために新しいPOSIXを
規格化するべきだって言ってるってことあってる?
主張がよくわからないんだけど
「シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。」から、
現状のPOSIXは中途半端で、もっといいものにするために新しいPOSIXを
規格化するべきだって言ってるってことあってる?
144デフォルトの名無しさん
2019/08/19(月) 13:23:29.26ID:oONnFCD4 POSIXのような標準はそう簡単には変更できないだろ。バージョンによるになるから
そして、ツールを作るのは大なり小なり思想があってやっているんで、言うようなできる最大のものに合わせるなんてなりっこない
文句なり言うなら、POSIXにではなくBSDに言う方が現実的だし、文句言うくらいな自分で実装してBSDに上げればいいだろう。上げても却下されるとかあるかもだがw
言っているのは単にWebで探した事例がLinuxでBSDだと動かないってのだけだもん
そして、ツールを作るのは大なり小なり思想があってやっているんで、言うようなできる最大のものに合わせるなんてなりっこない
文句なり言うなら、POSIXにではなくBSDに言う方が現実的だし、文句言うくらいな自分で実装してBSDに上げればいいだろう。上げても却下されるとかあるかもだがw
言っているのは単にWebで探した事例がLinuxでBSDだと動かないってのだけだもん
145デフォルトの名無しさん
2019/08/19(月) 13:40:48.28ID:4iryI+Qn >>144
難しく考えすぎでしょ。すでにある実装を採用すればいいだけ
思想なんかは、既に実装されてる時点で問題ないということだし。
POSIXにではなくBSDに言う方が現実的というけどBSDの現状知ってる?
すでにgreadlinkとかgtarとか結局GNU版を実装しちゃってるの。(その逆は聞かない)
そういう二重開発をなくすためにも、今の実装(の一部)をPOSIXにしてしまうべきだと思うね
難しく考えすぎでしょ。すでにある実装を採用すればいいだけ
思想なんかは、既に実装されてる時点で問題ないということだし。
POSIXにではなくBSDに言う方が現実的というけどBSDの現状知ってる?
すでにgreadlinkとかgtarとか結局GNU版を実装しちゃってるの。(その逆は聞かない)
そういう二重開発をなくすためにも、今の実装(の一部)をPOSIXにしてしまうべきだと思うね
146デフォルトの名無しさん
2019/08/19(月) 13:51:36.11ID:oONnFCD4 >>145
その採用がだよ。やりとり見てみ。はいそうですねでは進んでないから
それはいらないとかふつうにあるぞ。POSIXに限らず
何言ってるの?単にBSDにGNU coreutilsのパッケージがあって、それが入ることもあるってだけだよ。gって自分で付けて気づかないの?GNU coreutilsが入っているのが嫌という人も居るようだけど
その採用がだよ。やりとり見てみ。はいそうですねでは進んでないから
それはいらないとかふつうにあるぞ。POSIXに限らず
何言ってるの?単にBSDにGNU coreutilsのパッケージがあって、それが入ることもあるってだけだよ。gって自分で付けて気づかないの?GNU coreutilsが入っているのが嫌という人も居るようだけど
147デフォルトの名無しさん
2019/08/19(月) 13:53:39.09ID:4iryI+Qn148デフォルトの名無しさん
2019/08/19(月) 14:01:04.44ID:oONnFCD4 何を言いたいのかさっぱり
BSDも標準では入ってないぞ GNU coreutils は。何かそれを必要としたパッケージがあってそれにともないだろう
パッケージは誰かが作ってそれなりに利用されるのならわりと簡単にだぞ?パッケージだからな。必要な人は入れるというだけの
BSDも標準では入ってないぞ GNU coreutils は。何かそれを必要としたパッケージがあってそれにともないだろう
パッケージは誰かが作ってそれなりに利用されるのならわりと簡単にだぞ?パッケージだからな。必要な人は入れるというだけの
149デフォルトの名無しさん
2019/08/19(月) 17:39:47.54ID:xlQPwL5+ ・POSIXに準拠することにはメリットがある
↑これは俺もそう思うけど(正しいかどうかは別にして)
・今のPOSIXでは不十分なので,規格を拡張して,各社にそれを追従するよう促すべきだ
↑これは違うと思う。POSIXの「不便さ」は「どこでも動く」ことの引き換えであることを忘れてはいけいない(ルポ風)
↑これは俺もそう思うけど(正しいかどうかは別にして)
・今のPOSIXでは不十分なので,規格を拡張して,各社にそれを追従するよう促すべきだ
↑これは違うと思う。POSIXの「不便さ」は「どこでも動く」ことの引き換えであることを忘れてはいけいない(ルポ風)
150デフォルトの名無しさん
2019/08/19(月) 17:40:43.60ID:xlQPwL5+ cat >>149 | sed -e 's/いけいない/いけない/'
151デフォルトの名無しさん
2019/08/19(月) 18:49:04.48ID:0HwI7cO5 やっぱりどこでも動くシェルスクリプトなんて幻想なんだね。
152デフォルトの名無しさん
2019/08/19(月) 19:12:44.68ID:peefgVfy Write once, Bug anywhere.
153デフォルトの名無しさん
2019/08/19(月) 19:43:03.92ID:6nSAEgtv154デフォルトの名無しさん
2019/08/19(月) 20:19:55.37ID:WiF5XT2w bashで長いシェル書いてるといつもたくさんファイルを生成してしまうんだが上手い具合に生成しなくて済む方法ってある?
155デフォルトの名無しさん
2019/08/19(月) 20:22:05.55ID:oWmB5KZ/ >>154
たくさんファイルってどういうこと?
たくさんファイルってどういうこと?
157デフォルトの名無しさん
2019/08/19(月) 20:28:19.59ID:WiF5XT2w >>155
どっかからデータをとってくる
raw_file(最初)
user_file
user_and_id_file
format_file(完成形)
めっちゃテキトーに書いたけどこんな感じで4つぐらい作られてしまう
rmで消すのって有りなのかな
どっかからデータをとってくる
raw_file(最初)
user_file
user_and_id_file
format_file(完成形)
めっちゃテキトーに書いたけどこんな感じで4つぐらい作られてしまう
rmで消すのって有りなのかな
158デフォルトの名無しさん
2019/08/19(月) 20:29:18.05ID:oWmB5KZ/ はぁ? と言われましても、
無駄なら無駄なところをなくせ、必要ならそうするしかないで終わるんだが?
それじゃ全く何もわからないよ
無駄なら無駄なところをなくせ、必要ならそうするしかないで終わるんだが?
それじゃ全く何もわからないよ
159デフォルトの名無しさん
2019/08/19(月) 20:33:15.52ID:WiF5XT2w >>156
参考になりました。ベストアンサーあげます
参考になりました。ベストアンサーあげます
160デフォルトの名無しさん
2019/08/19(月) 20:50:25.65ID:JcVwKxxm161デフォルトの名無しさん
2019/08/19(月) 20:53:38.13ID:PiISpjsD162デフォルトの名無しさん
2019/08/19(月) 20:58:54.83ID:QrnBNgWe pasteで処理の結果をくっつける方法ってありますか?
処理A、処理B、処理Cの計3つでファイルを作成せずにくっつけたいです。
処理A、処理B、処理Cの計3つでファイルを作成せずにくっつけたいです。
163デフォルトの名無しさん
2019/08/19(月) 21:02:40.84ID:WV8MsfnG Xxx <(Yyy) <(Zzz)
こんな感じのがあったような?
こんな感じのがあったような?
164デフォルトの名無しさん
2019/08/19(月) 21:03:35.55ID:PiISpjsD165デフォルトの名無しさん
2019/08/19(月) 21:03:42.78ID:peefgVfy プロセス置換でできるかな?
166デフォルトの名無しさん
2019/08/19(月) 21:04:17.45ID:PiISpjsD あ、入力元はファイルじゃないのか?
167デフォルトの名無しさん
2019/08/19(月) 21:06:17.42ID:xlQPwL5+ >>163
BashやZshに依存してもいいならこれ。
BashやZshに依存してもいいならこれ。
168デフォルトの名無しさん
2019/08/19(月) 21:08:14.71ID:PiISpjsD pasteは複数の標準入力を受け付けるみたいね
printf '%s\n' a b c d e f g | paste - - -
a b c
d e f
g
だから処理A、処理B、処理Cをそれぞれ1行ずつ
出力できるならくっつけられるね。
printf '%s\n' a b c d e f g | paste - - -
a b c
d e f
g
だから処理A、処理B、処理Cをそれぞれ1行ずつ
出力できるならくっつけられるね。
169デフォルトの名無しさん
2019/08/19(月) 21:12:53.53ID:PiISpjsD あとは処理A、処理B、処理Cの順でデータを出力するなら、
それぞれ変数に入れといて、1行ずつとりだすとか。
まあできなくはない。
それぞれ変数に入れといて、1行ずつとりだすとか。
まあできなくはない。
170デフォルトの名無しさん
2019/08/19(月) 21:26:09.66ID:PiISpjsD171デフォルトの名無しさん
2019/08/19(月) 21:32:21.04ID:R3NGICj0 >>154-159
一時ファイルとか、メモリ内ファイルとかは?
一時ファイルとか、メモリ内ファイルとかは?
172デフォルトの名無しさん
2019/08/19(月) 21:38:04.83ID:PiISpjsD >>162
あ、nlとsort使えばいけるじゃん。
(
処理Aを出力 | nl -i3 # 1, 4, 7 と行番号をつける
処理Bを出力 | nl -i3 -v2 # 2, 5, 8, と行番号をつける
処理Cを出力 | nl -i3 -v3 # 3, 6, 9, と行番号をつける
) | sort -n | paste - - - | 行番号を削除
これでできないかな?
行番号を消すのは、nlの-sで区切り記号をつけられるから、
cutかsedでやればいいかな? 1行目が1ってわかってるから、
行番号の文字数もわかるので、あとはどうにかw
あ、nlとsort使えばいけるじゃん。
(
処理Aを出力 | nl -i3 # 1, 4, 7 と行番号をつける
処理Bを出力 | nl -i3 -v2 # 2, 5, 8, と行番号をつける
処理Cを出力 | nl -i3 -v3 # 3, 6, 9, と行番号をつける
) | sort -n | paste - - - | 行番号を削除
これでできないかな?
行番号を消すのは、nlの-sで区切り記号をつけられるから、
cutかsedでやればいいかな? 1行目が1ってわかってるから、
行番号の文字数もわかるので、あとはどうにかw
173デフォルトの名無しさん
2019/08/19(月) 21:52:44.53ID:PiISpjsD こんな感じかな?
a() { printf '%s\n' a b c d e; }
b() { printf '%s\n' A B C D E; }
c() { printf '%s\n' 1 2 3 4 5; }
{
a | nl -i3 -v1 -s:
b | nl -i3 -v2 -s:
c | nl -i3 -v3 -s:
} | sort -n | cut -d: -f2- | paste - - -
出力
a A 1
b B 2
c C 3
d D 4
e E 5
a() { printf '%s\n' a b c d e; }
b() { printf '%s\n' A B C D E; }
c() { printf '%s\n' 1 2 3 4 5; }
{
a | nl -i3 -v1 -s:
b | nl -i3 -v2 -s:
c | nl -i3 -v3 -s:
} | sort -n | cut -d: -f2- | paste - - -
出力
a A 1
b B 2
c C 3
d D 4
e E 5
174デフォルトの名無しさん
2019/08/20(火) 07:40:59.29ID:Gkd3xMH4 そのsortって安定だっけ。
じゃなかったら処理結果が入れ替わるおそれない?
じゃなかったら処理結果が入れ替わるおそれない?
175デフォルトの名無しさん
2019/08/20(火) 08:07:31.90ID:JOMXhFk+176デフォルトの名無しさん
2019/08/20(火) 08:24:06.78ID:Gkd3xMH4 POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
177デフォルトの名無しさん
2019/08/20(火) 08:37:08.94ID:JOMXhFk+ なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
178デフォルトの名無しさん
2019/08/20(火) 12:54:26.88ID:/fB0Ptq3 >>176
「安定」の意味分かって書いてる?
「安定」の意味分かって書いてる?
179デフォルトの名無しさん
2019/08/20(火) 13:41:04.53ID:tzbk8R3g 安定の書き込みクオリティ
180デフォルトの名無しさん
2019/08/20(火) 13:47:15.01ID:/V4ccaND シェルスクリプトってテキストファイルこねくり回すくらいしかできないんだよな
181デフォルトの名無しさん
2019/08/20(火) 13:52:13.54ID:I7f/WloD それで十分ですよ
182デフォルトの名無しさん
2019/08/20(火) 17:13:37.74ID:Gkd3xMH4 バイナリファイル扱えるスクリプト言語ってある?
Pythonとか?
Pythonとか?
183デフォルトの名無しさん
2019/08/20(火) 17:15:25.76ID:OyLrpvkx 使えないの挙げたほうが速いのでは?
184デフォルトの名無しさん
2019/08/20(火) 17:32:48.20ID:30Dp6unL 使えるほうが多いのか?
185デフォルトの名無しさん
2019/08/20(火) 17:47:53.72ID:CuOLtXP9 シェルスクリプトでバイナリを扱いたければ
odを使うしか無いだろう。
zshはNULLを扱えたはずだが、
bashやそれ以外はNULLを扱えない。
例のawkおじさんは、awkスクリプトで頑張ってるようだが
もちろんあれはシェルスクリプトではない
odを使うしか無いだろう。
zshはNULLを扱えたはずだが、
bashやそれ以外はNULLを扱えない。
例のawkおじさんは、awkスクリプトで頑張ってるようだが
もちろんあれはシェルスクリプトではない
186デフォルトの名無しさん
2019/08/20(火) 17:56:41.96ID:/V4ccaND >>182
扱えるというのはバイナリファイルの編集ができるってことだよね
扱えるというのはバイナリファイルの編集ができるってことだよね
187デフォルトの名無しさん
2019/08/20(火) 17:57:11.37ID:Gkd3xMH4 無知ですまんがAWKおじさんってだれ?
なんか否定的な書き方だけど悪名高いコテハン?
なんか否定的な書き方だけど悪名高いコテハン?
188デフォルトの名無しさん
2019/08/20(火) 18:00:14.90ID:CuOLtXP9 >>187
自称シェルスクリプトで色々頑張ってる人。ググればわかる。
悪名高いコテハンではないが、俺的にはあのセンスが受け入れられない。
色々頑張ってるが、コードを見るとawkスクリプトを
シェルスクリプトで生成して、メインの処理はawkで
実行してるのでダサい
自称シェルスクリプトで色々頑張ってる人。ググればわかる。
悪名高いコテハンではないが、俺的にはあのセンスが受け入れられない。
色々頑張ってるが、コードを見るとawkスクリプトを
シェルスクリプトで生成して、メインの処理はawkで
実行してるのでダサい
189デフォルトの名無しさん
2019/08/20(火) 18:01:35.41ID:/V4ccaND190デフォルトの名無しさん
2019/08/20(火) 18:05:24.00ID:CuOLtXP9 odの他にhexdumpとかでもできるがhexdumpはPOSIXじゃない。
あとbase64もPOSIXじゃない。
あとは出来る可能性があるとすれば uuencode だけど
あれを処理するのは難しいだろうな。
あとbase64もPOSIXじゃない。
あとは出来る可能性があるとすれば uuencode だけど
あれを処理するのは難しいだろうな。
191デフォルトの名無しさん
2019/08/20(火) 18:07:02.56ID:CuOLtXP9192デフォルトの名無しさん
2019/08/20(火) 18:10:40.86ID:Gkd3xMH4 >>189
あぁ、この人のことか。ありがとう。
なんかQiitaかどっかでメチャメチャ喧嘩腰のコメントしてた記憶があるわ。
https://qiita.com/richmikan@github/items/5158eac47467d8a29056
↑ここのコメントとかかな。
言ってることは正しいのかもしれんが、ちょっと品性に欠けるなぁと思った。
あぁ、この人のことか。ありがとう。
なんかQiitaかどっかでメチャメチャ喧嘩腰のコメントしてた記憶があるわ。
https://qiita.com/richmikan@github/items/5158eac47467d8a29056
↑ここのコメントとかかな。
言ってることは正しいのかもしれんが、ちょっと品性に欠けるなぁと思った。
193デフォルトの名無しさん
2019/08/20(火) 18:15:23.89ID:Gkd3xMH4 >>190
実はBase64はPOSIXの範囲でも(簡単に)実現できる。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/uuencode.html
によればuuencode -m /dev/stdoutこれでほぼbase64コマンドと同じ挙動になる。
ていうか/dev/stdoutってPOSIXで規定されてないのにその肝心の公式が仕様書内で
/dev/stdoutを使っちゃっていいのかねw
実はBase64はPOSIXの範囲でも(簡単に)実現できる。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/uuencode.html
によればuuencode -m /dev/stdoutこれでほぼbase64コマンドと同じ挙動になる。
ていうか/dev/stdoutってPOSIXで規定されてないのにその肝心の公式が仕様書内で
/dev/stdoutを使っちゃっていいのかねw
194デフォルトの名無しさん
2019/08/20(火) 18:19:45.77ID:5hgm7I5A195デフォルトの名無しさん
2019/08/20(火) 18:23:52.47ID:PFkWfbQh POSIX、POSIXとか言ってるやつも、AWKおじさん並みのKitty。
196デフォルトの名無しさん
2019/08/20(火) 18:25:32.24ID:Gkd3xMH4 Base64を実現したくはないのにbase64コマンドが必要な状況ってどんなのだろう…?
197デフォルトの名無しさん
2019/08/20(火) 18:27:06.57ID:5hgm7I5A 今シェルスクリプトでバイナリを扱う話してたろうが
そういうとこやで
そういうとこやで
198デフォルトの名無しさん
2019/08/20(火) 18:41:10.24ID:Gkd3xMH4 こりゃダメだ
199デフォルトの名無しさん
2019/08/20(火) 18:49:07.29ID:5hgm7I5A200デフォルトの名無しさん
2019/08/20(火) 18:52:24.07ID:/V4ccaND はい解散
201デフォルトの名無しさん
2019/08/20(火) 20:00:45.18ID:Gkd3xMH4 自分の主張をマトモだとか言っちゃう男の人って…
202デフォルトの名無しさん
2019/08/20(火) 20:02:58.01ID:ar+OimNr こいつ素でやってるのか?w
会話の流れがまともだって言ったら、
今度は主張がまともと言ってるんだと読み間違えやがったw
まあ確かにそのとおりではあるが、
文章はそう読めるはずがないよな
会話の流れがまともだって言ったら、
今度は主張がまともと言ってるんだと読み間違えやがったw
まあ確かにそのとおりではあるが、
文章はそう読めるはずがないよな
203デフォルトの名無しさん
2019/08/20(火) 20:15:26.86ID:/fB0Ptq3 >>201
そんでsortの何が安定なのかは分かったの?
そんでsortの何が安定なのかは分かったの?
204デフォルトの名無しさん
2019/08/20(火) 21:24:50.14ID:Gkd3xMH4 sortの話はもう終わったでしょ、お爺ちゃん。
205デフォルトの名無しさん
2019/08/20(火) 21:27:12.41ID:ar+OimNr206デフォルトの名無しさん
2019/08/20(火) 21:28:59.99ID:ar+OimNr 176 名前:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 08:24:06.78 ID:Gkd3xMH4 [2/10]
POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
177 自分:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 08:37:08.94 ID:JOMXhFk+ [2/2]
なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
178 名前:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 12:54:26.88 ID:/fB0Ptq3 [1/2]
>>176
「安定」の意味分かって書いてる?
179 名前:デフォルトの名無しさん[] 投稿日:2019/08/20(火) 13:41:04.53 ID:tzbk8R3g
安定の書き込みクオリティ
POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
177 自分:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 08:37:08.94 ID:JOMXhFk+ [2/2]
なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
178 名前:デフォルトの名無しさん[sage] 投稿日:2019/08/20(火) 12:54:26.88 ID:/fB0Ptq3 [1/2]
>>176
「安定」の意味分かって書いてる?
179 名前:デフォルトの名無しさん[] 投稿日:2019/08/20(火) 13:41:04.53 ID:tzbk8R3g
安定の書き込みクオリティ
207デフォルトの名無しさん
2019/08/20(火) 21:30:41.86ID:ar+OimNr ここで、終わったって自分で言ってるから、
ここで\(^o^)/オワタなんだろうなw
ここで\(^o^)/オワタなんだろうなw
208デフォルトの名無しさん
2019/08/20(火) 22:46:08.19ID:Gkd3xMH4 お爺ちゃん怒りの3連レス。そんなに熱くならなくてもいいのに。冷房がもったいないw
209デフォルトの名無しさん
2019/08/20(火) 23:02:20.69ID:55BxDwsc みっともないな>>204が
210デフォルトの名無しさん
2019/08/20(火) 23:39:15.24ID:I7f/WloD 自称「神様」には何を言ってもムダ
211デフォルトの名無しさん
2019/08/21(水) 00:33:27.35ID:XuzWeGbv 自分が常に正しいと思ってる奴にロクな奴はいない
212デフォルトの名無しさん
2019/08/21(水) 02:24:45.15ID:GZen3C6t >>208
あはは。二代目神様襲名おめでとうw
あはは。二代目神様襲名おめでとうw
213デフォルトの名無しさん
2019/08/21(水) 11:27:36.55ID:eilohrgH 思ったんだけどbash依存するのってなんの機能を使いたくてbash使うの?
bashだけにある機能の事なら知ってる
bashだけにある機能の事なら知ってる
214デフォルトの名無しさん
2019/08/21(水) 11:41:07.46ID:g3Au7XoK ぐぐったら出てくるから
215デフォルトの名無しさん
2019/08/21(水) 11:42:23.31ID:CWF24/8E 別に使いたいわけじゃなくて、ぐぐったらそれがbashスクリプトだったってこと?
じゃあそのbashスクリプトを書いた人はなんでって話になるけど
じゃあそのbashスクリプトを書いた人はなんでって話になるけど
216デフォルトの名無しさん
2019/08/21(水) 11:43:24.61ID:CWF24/8E 訂正
× そのbashスクリプトを書いた人はなんでって話になるけど
○ そのbashスクリプトを書いた人はなんの機能を使いたくてbashを使っているの?
× そのbashスクリプトを書いた人はなんでって話になるけど
○ そのbashスクリプトを書いた人はなんの機能を使いたくてbashを使っているの?
217デフォルトの名無しさん
2019/08/21(水) 12:37:03.95ID:+hDHTeft bashしか使わない人がbash依存して何か問題あるのかね
シェルに限らずLinuxしか使わない人が「Windowsでも動く」プログラムを書く必要はないし
(シェアの低い変なコンピュータ使ってる人はその人だけ苦労すればいい)
シェルに限らずLinuxしか使わない人が「Windowsでも動く」プログラムを書く必要はないし
(シェアの低い変なコンピュータ使ってる人はその人だけ苦労すればいい)
218デフォルトの名無しさん
2019/08/21(水) 12:38:05.34ID:tOxptV2F > bashしか使わない人がbash依存して何か問題あるのかね
問題ないよ。なにを目的にbash依存してるのか聞いてるだけ
問題ないよ。なにを目的にbash依存してるのか聞いてるだけ
219デフォルトの名無しさん
2019/08/21(水) 12:58:08.94ID:23vMmTO3220デフォルトの名無しさん
2019/08/21(水) 13:00:19.86ID:tOxptV2F221デフォルトの名無しさん
2019/08/21(水) 13:02:07.60ID:23vMmTO3 大多数はそんなこと気にしてないだろう
配列使うにしてもシェルスクリプトで配列使えるか調べ、現在使ってるシェル(大多数がbashだろう)で使えればそう使ってるだけだろう
配列使うにしてもシェルスクリプトで配列使えるか調べ、現在使ってるシェル(大多数がbashだろう)で使えればそう使ってるだけだろう
222デフォルトの名無しさん
2019/08/21(水) 13:05:16.74ID:tOxptV2F なんかそれだとbashにする理由はないのに
bash依存してるって言ってるように見えるなw
bash依存してるって言ってるように見えるなw
223デフォルトの名無しさん
2019/08/21(水) 13:07:38.33ID:23vMmTO3 逆でもあるだろうに。それで問題ないなら問題ないだろに
てか、>>217って言ってるのをを未だに理解できないの?理解したくないの?
てか、>>217って言ってるのをを未だに理解できないの?理解したくないの?
224デフォルトの名無しさん
2019/08/21(水) 13:09:19.14ID:ttxmDenw 結果的にbash依存になっているが当人はそんな事を意識していない、って感じ
225デフォルトの名無しさん
2019/08/21(水) 13:09:33.13ID:tOxptV2F >>223
君が質問に答えないからだよ
質問
> 思ったんだけどbash依存するのってなんの機能を使いたくてbash使うの?
結論
特になにかの機能が使いたいわけではないが、動いてしまったからbash依存になっただけ
君が質問に答えないからだよ
質問
> 思ったんだけどbash依存するのってなんの機能を使いたくてbash使うの?
結論
特になにかの機能が使いたいわけではないが、動いてしまったからbash依存になっただけ
226デフォルトの名無しさん
2019/08/21(水) 13:11:10.44ID:23vMmTO3 そう>>217が言っているんだがな。なにか文を変えたいだけか?それもいやらしく
いつのもやつか、やっぱり
いつのもやつか、やっぱり
227デフォルトの名無しさん
2019/08/21(水) 13:11:19.76ID:tOxptV2F228デフォルトの名無しさん
2019/08/21(水) 13:12:38.86ID:tOxptV2F bashの機能のうち、これは絶対欲しいっていう機能は
あまりないってことなのかな?
あまりないってことなのかな?
229デフォルトの名無しさん
2019/08/21(水) 13:18:24.42ID:8muhIeVb 最初から「bashの便利な機能」を聞いてるのに、
思いつかないなら無いって言わないから話がこじれるんだろう。
思いつかないなら無いって言わないから話がこじれるんだろう。
230デフォルトの名無しさん
2019/08/21(水) 13:26:22.43ID:23vMmTO3 bashの便利な機能ってのが何を聞いてるのか曖昧だからな
kash,zshなどでも同じくあるのではないあくまもでbash独自の機能なのかなんななの曖昧
シェルスクリプトに限らずスクリプトに限らずマルチプラットフォームを意識するかどうかの話にならざるを得ないだろう
kash,zshなどでも同じくあるのではないあくまもでbash独自の機能なのかなんななの曖昧
シェルスクリプトに限らずスクリプトに限らずマルチプラットフォームを意識するかどうかの話にならざるを得ないだろう
231デフォルトの名無しさん
2019/08/21(水) 13:28:58.51ID:rB/3mk9e という話をして欲しいんじゃなくて
(あんたが思う)bashの便利な機能を聞いてるんだよ
(あんたが思う)bashの便利な機能を聞いてるんだよ
232デフォルトの名無しさん
2019/08/21(水) 13:30:51.65ID:KOXkIKEx 思いつかないなら、無いって素直に言えばいいじゃん。言い訳ばっかり
233デフォルトの名無しさん
2019/08/21(水) 13:30:58.28ID:23vMmTO3 ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なのかなんなのか曖昧
bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう。もちろんそんなに便利でもないのもあるだろうけど
bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう。もちろんそんなに便利でもないのもあるだろうけど
234デフォルトの名無しさん
2019/08/21(水) 13:31:56.80ID:23vMmTO3 >>231,232
ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なの?
ksh,zshなどでも同じくあるのではないあくまもでbash独自の機能なの?
235デフォルトの名無しさん
2019/08/21(水) 13:32:58.59ID:oH2mxJhX236デフォルトの名無しさん
2019/08/21(水) 13:35:01.88ID:23vMmTO3 配列w
readのオプション
他にもあるけど、すぐに思いつかない、便利と意識して使ってるわけではないからな。空気と同じだよ
readのオプション
他にもあるけど、すぐに思いつかない、便利と意識して使ってるわけではないからな。空気と同じだよ
237デフォルトの名無しさん
2019/08/21(水) 13:35:54.29ID:ttxmDenw あまり便利だとは思わないけどよく使ってるのは "&>" と連想配列(declare -A)
238デフォルトの名無しさん
2019/08/21(水) 13:39:22.38ID:dVKYqL0H ほんと質問に答えさせるのに何レス消費させるのかw
配列、連想配列、readのオプション、"&>"
これぐらいか?
配列、連想配列、readのオプション、"&>"
これぐらいか?
239デフォルトの名無しさん
2019/08/21(水) 13:40:56.88ID:ttxmDenw 自称「神様」のきまぐれなお遊びに付き合ってやってるんだ
ありがたく思いやがって下さい
ありがたく思いやがって下さい
240デフォルトの名無しさん
2019/08/21(水) 13:41:29.73ID:dVKYqL0H あぁ昨日のsortが安定の神様かw
241デフォルトの名無しさん
2019/08/21(水) 13:41:30.49ID:23vMmTO3 >>235といい質問に「答えさせる」といい、なんか見えすぎなんだけどな
どしたの?
あんたの意図がわからんからだよ。何をしたいの?いつもの負けん気だけか?
bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう
って言ってるんだけど。だから空気と同じと言っているんだがなあ
どしたの?
あんたの意図がわからんからだよ。何をしたいの?いつもの負けん気だけか?
bashの便利な機能もどっちにしろそれが使えないとわかった時に気がつくものだろう
って言ってるんだけど。だから空気と同じと言っているんだがなあ
242デフォルトの名無しさん
2019/08/21(水) 13:44:31.57ID:dVKYqL0H という話をなんでするんだろう?w
243デフォルトの名無しさん
2019/08/21(水) 13:44:58.76ID:dVKYqL0H ほんと、質問の関係ない言い訳ばかりするよなw
244デフォルトの名無しさん
2019/08/21(水) 13:45:07.40ID:23vMmTO3245デフォルトの名無しさん
2019/08/21(水) 13:46:22.58ID:dVKYqL0H246デフォルトの名無しさん
2019/08/21(水) 13:46:59.44ID:23vMmTO3247デフォルトの名無しさん
2019/08/21(水) 13:47:41.90ID:cs49NQcU 意図がわからないなら、意図がわからないから教えてといえば良い
248デフォルトの名無しさん
2019/08/21(水) 13:47:49.79ID:23vMmTO3 >>245
ノリでそのレスしたのか、嬉々としてそのレスしたのか、嬉々としてならすまんかったw
ノリでそのレスしたのか、嬉々としてそのレスしたのか、嬉々としてならすまんかったw
249デフォルトの名無しさん
2019/08/21(水) 13:48:55.17ID:l+gTzvUp んでsortの話はどうなったの?
安定がどうとか
安定がどうとか
250デフォルトの名無しさん
2019/08/21(水) 13:50:29.02ID:23vMmTO3251デフォルトの名無しさん
2019/08/21(水) 13:55:16.57ID:+thc3RuF bashのプロセス置換は便利だなー(棒
252デフォルトの名無しさん
2019/08/21(水) 13:55:38.38ID:Z+yguh+d 働けよクソニート
253デフォルトの名無しさん
2019/08/21(水) 14:00:20.39ID:+thc3RuF ブレース展開も便利だなー
254デフォルトの名無しさん
2019/08/21(水) 14:21:13.28ID:+thc3RuF 可搬性を求めるならPOSIXで書く。
テキストこねくり回す程度のものなら書ける。
可搬性要らないor自分の環境で動けば良いなら好きに書けば良い。
bash,zsh依存でOK。ちゃんとシバン書いてな
テキストこねくり回す程度のものなら書ける。
可搬性要らないor自分の環境で動けば良いなら好きに書けば良い。
bash,zsh依存でOK。ちゃんとシバン書いてな
255デフォルトの名無しさん
2019/08/21(水) 15:27:51.40ID:zqKd/4GT やっぱりどこでも動くシェルスクリプトなんて幻想なんだね。
256デフォルトの名無しさん
2019/08/21(水) 16:35:44.19ID:MMv7CGOe 初めて触れたRH8も、Cygwinもbashだったから、
今でもふつうにbash使ってるな。
それにしても、bashはなんでこんなに嫌われてるんだ?w
今でもふつうにbash使ってるな。
それにしても、bashはなんでこんなに嫌われてるんだ?w
257デフォルトの名無しさん
2019/08/21(水) 16:44:32.20ID:MKRUgKM/ ま、bashがデフォルトシェルじゃないOSもそれなりにあるもんな
258デフォルトの名無しさん
2019/08/21(水) 17:14:23.54ID:M+fZiddG いつかカーソルキーのないキーボードを使うかも知れないから常にHJKL使えってvimスレの仙人が言ってた
259デフォルトの名無しさん
2019/08/21(水) 17:36:09.70ID:+thc3RuF >>258
Emacs使いはHJKL使わないってじっちゃんが言ってた
Emacs使いはHJKL使わないってじっちゃんが言ってた
260デフォルトの名無しさん
2019/08/21(水) 19:28:59.77ID:/hAWXHxO >>257
Webサイト向けだが、UbuntuとDebianをあわせて59.7%がbash拡張の無いdashだからね
https://news.mynavi.jp/article/20190701-851849/
Webサイト向けだが、UbuntuとDebianをあわせて59.7%がbash拡張の無いdashだからね
https://news.mynavi.jp/article/20190701-851849/
261デフォルトの名無しさん
2019/08/21(水) 19:32:04.69ID:CEaWdSia >>256
bashがデファクトスタンダード的なもんだからな。採用の多さから
ksh,zshなどと置き換えても同じことだったりしてるからな、単なる象徴的な名称としてだけだろう
あとは/bin/shがbashな場合にイマイチな仕様だったりするとこか
bashがデファクトスタンダード的なもんだからな。採用の多さから
ksh,zshなどと置き換えても同じことだったりしてるからな、単なる象徴的な名称としてだけだろう
あとは/bin/shがbashな場合にイマイチな仕様だったりするとこか
262デフォルトの名無しさん
2019/08/21(水) 19:33:05.60ID:/hAWXHxO あとmacがbashをやめてzshになるらしいので、それなりどころか
過半数以上がbashを使わなくなりそう。
まあmac版のzshはbashと互換性があるように
デフォルトオプションを変更してそうな気がするけど
shwordsplitとか
>>258
bash以外を使うことがないって言いたいんだろうけど、その例えは的外れかな
現に多くの人がbash以外を使ってるわけだから
過半数以上がbashを使わなくなりそう。
まあmac版のzshはbashと互換性があるように
デフォルトオプションを変更してそうな気がするけど
shwordsplitとか
>>258
bash以外を使うことがないって言いたいんだろうけど、その例えは的外れかな
現に多くの人がbash以外を使ってるわけだから
263デフォルトの名無しさん
2019/08/21(水) 19:34:57.26ID:/hAWXHxO あ、そういやWSLもUbuntuだっけか。他のディストリも使えるけど
そう考えるとdash使ってる人、かなりいるな。
そう考えるとdash使ってる人、かなりいるな。
264デフォルトの名無しさん
2019/08/21(水) 19:35:53.33ID:CEaWdSia >>261,256
訂正。bashを嫌ってる人はいるみたいだった。理解できんw
訂正。bashを嫌ってる人はいるみたいだった。理解できんw
265デフォルトの名無しさん
2019/08/21(水) 19:45:33.15ID:/hAWXHxO >>264
bashコードなのに#!/bin/shを名乗るなってことでしょ?
Ubuntu/Debianでdashが採用されたのは
パフォーマンスがいいかららしい。
https://wiki.archlinux.jp/index.php/Dash
> 実行速度が速い。Bash などのシェルに比べて 4倍高速 に動作します。
その際にbash依存しているのに#!/bin/shを使われていたから
変更するのに手間がかかったって言われてるね。
あとセキュリティもbashよりもdashのほうが高そうだし。bashは今も機能加えてるから新たに脆弱性が生まれてくる可能性も高い。
https://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF%E8%84%86%E5%BC%B1%E6%80%A7
> 2014年9月に公表されたBashについての一群の脆弱性(CVE-2014-6271 [1] 等)の発見は、
> 俗にシェルショック(Shellshock)、バッシュドア(bashdoor)と呼ばれている。
> 関連して6つの脆弱性が登録された。
bashコードなのに#!/bin/shを名乗るなってことでしょ?
Ubuntu/Debianでdashが採用されたのは
パフォーマンスがいいかららしい。
https://wiki.archlinux.jp/index.php/Dash
> 実行速度が速い。Bash などのシェルに比べて 4倍高速 に動作します。
その際にbash依存しているのに#!/bin/shを使われていたから
変更するのに手間がかかったって言われてるね。
あとセキュリティもbashよりもdashのほうが高そうだし。bashは今も機能加えてるから新たに脆弱性が生まれてくる可能性も高い。
https://ja.wikipedia.org/wiki/2014%E5%B9%B4%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF%E8%84%86%E5%BC%B1%E6%80%A7
> 2014年9月に公表されたBashについての一群の脆弱性(CVE-2014-6271 [1] 等)の発見は、
> 俗にシェルショック(Shellshock)、バッシュドア(bashdoor)と呼ばれている。
> 関連して6つの脆弱性が登録された。
266デフォルトの名無しさん
2019/08/21(水) 19:51:13.28ID:CEaWdSia267デフォルトの名無しさん
2019/08/21(水) 19:53:39.23ID:/hAWXHxO268デフォルトの名無しさん
2019/08/21(水) 19:55:50.58ID:CEaWdSia 話が通じてないなw
269デフォルトの名無しさん
2019/08/21(水) 20:02:35.45ID:MMv7CGOe270デフォルトの名無しさん
2019/08/21(水) 20:02:40.75ID:/hAWXHxO >>268
ここでデフォルトシェルの定義がどうこう言っても無意味だっていう話
https://wiki.ubuntu.com/DashAsBinSh
> Why was this change made?
> The major reason to switch the default shell was efficiency.
デフォルトシステムシェルのことを
デフォルトシェルと呼んでる例なんていくらでもあるんだから
ここでデフォルトシェルの定義がどうこう言っても無意味だっていう話
https://wiki.ubuntu.com/DashAsBinSh
> Why was this change made?
> The major reason to switch the default shell was efficiency.
デフォルトシステムシェルのことを
デフォルトシェルと呼んでる例なんていくらでもあるんだから
271デフォルトの名無しさん
2019/08/21(水) 20:04:25.00ID:/hAWXHxO >>269
> Ubuntu on WSL だと、デフォルトシェルはbashになる。
話通じてないなw
その人が書くシェルスクリプトの一行目には、どうせ #!/bin/sh って書くでしょ?
デフォルトログインシェルがなんであろうが、
デフォルトシステムシェルは dash になるんだよ。
> Ubuntu on WSL だと、デフォルトシェルはbashになる。
話通じてないなw
その人が書くシェルスクリプトの一行目には、どうせ #!/bin/sh って書くでしょ?
デフォルトログインシェルがなんであろうが、
デフォルトシステムシェルは dash になるんだよ。
272デフォルトの名無しさん
2019/08/21(水) 20:08:56.78ID:MMv7CGOe273デフォルトの名無しさん
2019/08/21(水) 20:09:40.60ID:CEaWdSia 誰かがデフォルトシェルと言えばそのデフォルトシステムシェルのことだと言っていたからなあ
流れ的に同じこと言っているなと。そんな話はしてないんじゃねえのってとことだな
流れ的に同じこと言っているなと。そんな話はしてないんじゃねえのってとことだな
274デフォルトの名無しさん
2019/08/21(水) 20:12:54.47ID:/hAWXHxO >>266
> ちなみに大好きなPOSIXでググってみたが、デフォルトシェル=ログインシェルだなあ。
POSIXが/bin/shについて語ることはあっても、
/bin/bashについて語ることはないと思う
POSIXの世界のシェルには/bin/shしかないのでは?
> ちなみに大好きなPOSIXでググってみたが、デフォルトシェル=ログインシェルだなあ。
POSIXが/bin/shについて語ることはあっても、
/bin/bashについて語ることはないと思う
POSIXの世界のシェルには/bin/shしかないのでは?
275デフォルトの名無しさん
2019/08/21(水) 20:17:07.13ID:CEaWdSia "default shell" というのはあるんだよ。そしてそれを指しているのはログインシェルっていう
なにか問題でも?ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもないってことだな、POSIXでの文章でそうなんだから
そして、ログインシェルの話をしていたって>>269で明らかになりましたってとこで俺は満足してますがw
なにか問題でも?ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもないってことだな、POSIXでの文章でそうなんだから
そして、ログインシェルの話をしていたって>>269で明らかになりましたってとこで俺は満足してますがw
276デフォルトの名無しさん
2019/08/21(水) 20:19:20.00ID:MMv7CGOe >>274
> POSIXの世界のシェルには/bin/shしかないのでは?
そうなの?
20年くらい前のbashの解説書 "bash Manual & Reference" には、
Bourn Shell(sh/bsh)をPOSIXに準拠させるために書き直したのが
Bourn Again Shell(bash)というふうに書かれていて、
そういうもんだと思ってたわ。
> POSIXの世界のシェルには/bin/shしかないのでは?
そうなの?
20年くらい前のbashの解説書 "bash Manual & Reference" には、
Bourn Shell(sh/bsh)をPOSIXに準拠させるために書き直したのが
Bourn Again Shell(bash)というふうに書かれていて、
そういうもんだと思ってたわ。
277デフォルトの名無しさん
2019/08/21(水) 20:20:46.30ID:/hAWXHxO >>275
うん、だからそこでデフォルトログインシェルの話をしたって意味がないでしょう?と言ってるわけ。
重要なのは /bin/sh の話だよ。
#!/bin/bash と書いてbashスクリプトを書くのはいいけど
#!/bin/shと書いていながらbashスクリプトになってるから嫌われているわけで
うん、だからそこでデフォルトログインシェルの話をしたって意味がないでしょう?と言ってるわけ。
重要なのは /bin/sh の話だよ。
#!/bin/bash と書いてbashスクリプトを書くのはいいけど
#!/bin/shと書いていながらbashスクリプトになってるから嫌われているわけで
278デフォルトの名無しさん
2019/08/21(水) 20:25:13.92ID:CEaWdSia ふーん
食いつき&その後レスからそうとは思えないけど、まあそういうことでいいよw
食いつき&その後レスからそうとは思えないけど、まあそういうことでいいよw
279デフォルトの名無しさん
2019/08/21(水) 20:26:05.08ID:/hAWXHxO280デフォルトの名無しさん
2019/08/21(水) 20:28:27.61ID:LqLocPLj bash bash bash
fish and bash
fish and bash
281デフォルトの名無しさん
2019/08/21(水) 20:29:21.72ID:/hAWXHxO282デフォルトの名無しさん
2019/08/21(水) 20:33:57.11ID:CEaWdSia >>281
ああ、いつものだなってとこだなw
ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもない
というのがわかった|わかっているようなので、まあいいよってとこだよ
まさしく、その最初からも読み違いとしか思えないけど、まあそれもw
ああ、いつものだなってとこだなw
ログインシェルをデフォルトシェルと言っても何も差し支えがなく間違いでもない
というのがわかった|わかっているようなので、まあいいよってとこだよ
まさしく、その最初からも読み違いとしか思えないけど、まあそれもw
283デフォルトの名無しさん
2019/08/21(水) 20:35:07.03ID:/hAWXHxO284デフォルトの名無しさん
2019/08/21(水) 20:36:27.37ID:CEaWdSia ムカついたのね。まあムカつくように書いたんだけどwなぜかはひみつww
285デフォルトの名無しさん
2019/08/21(水) 20:40:12.26ID:/hAWXHxO あーあ、とうとう反論はできないから、
ムカつかせるためだけにレスをしたって認めちゃったw
そういうとこやで
ムカつかせるためだけにレスをしたって認めちゃったw
そういうとこやで
286デフォルトの名無しさん
2019/08/21(水) 20:42:42.39ID:CEaWdSia なんの反論????いきなりすぎて意味わかりません、なんの反論すればいいの?????
ちなみに、>>276は「そういうもんだと思ってた」と言っているように反証でもなんでもなく、困惑しているんじゃないかなあと思ってみたり
ちなみに、>>276は「そういうもんだと思ってた」と言っているように反証でもなんでもなく、困惑しているんじゃないかなあと思ってみたり
287デフォルトの名無しさん
2019/08/21(水) 20:43:23.13ID:/hAWXHxO >>286
ふーん、まあそういうことでいいよw
ふーん、まあそういうことでいいよw
288デフォルトの名無しさん
2019/08/21(水) 20:43:52.96ID:CEaWdSia それなら、よしっww
終わって何よりw
終わって何よりw
289デフォルトの名無しさん
2019/08/21(水) 20:44:38.88ID:/hAWXHxO だからそういうことでいいってw
290デフォルトの名無しさん
2019/08/21(水) 20:45:06.34ID:/hAWXHxO bashコードなのに#!/bin/shを名乗るなってことでしょ?
ということが最後の話となった
ということが最後の話となった
291デフォルトの名無しさん
2019/08/21(水) 20:45:11.83ID:CEaWdSia だからそれでよかったねえw
292デフォルトの名無しさん
2019/08/21(水) 20:45:37.37ID:ttxmDenw ,. '"´ ̄ ̄ ̄ ̄``ヽ、
/::::::::::::::::::::::::::::::::::::::::::::::\
/::::::::::::;.: --─---─-、:::::::::::::ヽ
./::::::::::::/ィC¨ヽ \:::::::::::l
/:::::::::/ └¬'´, ィC¨ヽ';:::::::::!
./::::::::イ / ,. ヽ `¬┘';:::::::!
l::::::::::::l /ハ ハ } ヾ::::j
{::::{⌒l:! / ` ' ヽ V}
. ';:::l ゝリ l ,/ ̄¨ヽ ', }l
ヾヽ__j { {,. -−‐‐ヘ {,l
ヾ::::| i ヽ ヽェェェェェノ {
}:::l ヽ ` ̄¨´ ノ }
ヾ;k \_ __ ,/ }
"|  ̄ ̄ ̄ ノ
_,. -‐"\ フー-、_
'"´ `ヽ、 / ┼ヽ -|r‐、. レ |
d⌒) ./| _ノ __ノ
---------------
制作・著作 NHK
/::::::::::::::::::::::::::::::::::::::::::::::\
/::::::::::::;.: --─---─-、:::::::::::::ヽ
./::::::::::::/ィC¨ヽ \:::::::::::l
/:::::::::/ └¬'´, ィC¨ヽ';:::::::::!
./::::::::イ / ,. ヽ `¬┘';:::::::!
l::::::::::::l /ハ ハ } ヾ::::j
{::::{⌒l:! / ` ' ヽ V}
. ';:::l ゝリ l ,/ ̄¨ヽ ', }l
ヾヽ__j { {,. -−‐‐ヘ {,l
ヾ::::| i ヽ ヽェェェェェノ {
}:::l ヽ ` ̄¨´ ノ }
ヾ;k \_ __ ,/ }
"|  ̄ ̄ ̄ ノ
_,. -‐"\ フー-、_
'"´ `ヽ、 / ┼ヽ -|r‐、. レ |
d⌒) ./| _ノ __ノ
---------------
制作・著作 NHK
293デフォルトの名無しさん
2019/08/21(水) 20:46:44.09ID:/hAWXHxO >>291
あぁ、反論っていうのは、これに対する反論だよ。
あぁ、反論っていうのは、これに対する反論だよ。
294デフォルトの名無しさん
2019/08/21(水) 20:47:09.06ID:/hAWXHxO これって言うのは、これね
> bashコードなのに#!/bin/shを名乗るなってことでしょ?
> bashコードなのに#!/bin/shを名乗るなってことでしょ?
295デフォルトの名無しさん
2019/08/21(水) 20:49:21.93ID:/hAWXHxO296デフォルトの名無しさん
2019/08/21(水) 20:50:16.25ID:/hAWXHxO いや、OSもそれなりにあるもんなっていうから
そのOSはそれなりに使われてるんだろうなと思ってね。
そのOSはそれなりに使われてるんだろうなと思ってね。
297デフォルトの名無しさん
2019/08/21(水) 20:51:38.32ID:CEaWdSia 誰もそんな話はしてないと思うし、俺は最初ので触れているんだけどな
誰かみたいに「名乗るな」とか言わなけどw
てか、続けんのかよw自分の言ったことを忘れすぎだろう
あら、あら、まあ。いつものだな。終わりますww
誰かみたいに「名乗るな」とか言わなけどw
てか、続けんのかよw自分の言ったことを忘れすぎだろう
あら、あら、まあ。いつものだな。終わりますww
298デフォルトの名無しさん
2019/08/21(水) 20:52:22.52ID:/hAWXHxO あぁ、デフォルトシェルっていうのは、
デフォルトシステムシェルってことか
https://wiki.ubuntu.com/DashAsBinSh
> Why was this change made?
> The major reason to switch the default shell was efficiency.
↑この文脈の「the default shell」
それならたしかにたくさんあるわ
デフォルトシステムシェルってことか
https://wiki.ubuntu.com/DashAsBinSh
> Why was this change made?
> The major reason to switch the default shell was efficiency.
↑この文脈の「the default shell」
それならたしかにたくさんあるわ
299デフォルトの名無しさん
2019/08/21(水) 20:53:10.58ID:/hAWXHxO >>297
ふーん、まあそういうことでいいよw
ふーん、まあそういうことでいいよw
300デフォルトの名無しさん
2019/08/21(水) 20:54:13.14ID:/hAWXHxO デフォルトシステムシェルっていうか
システムが使うデフォルトのシェルっていうべきかな?
システムが使うデフォルトのシェルっていうべきかな?
301デフォルトの名無しさん
2019/08/21(水) 21:33:16.44ID:WsJBrYLB macOS10.15でzshに変更になるって話、/bin/sh は結局何になるんだろう?
zshかな?って思ってたけど、dashの可能性もあるのかな?
ここ読んで知ったけど
https://scriptingosx.com/2019/06/moving-to-zsh/
ログインシェルに /bin/dash を選べるようになってるらしい。
https://support.apple.com/en-us/HT208050
(homebrewの話ではないよ)
zshかな?って思ってたけど、dashの可能性もあるのかな?
ここ読んで知ったけど
https://scriptingosx.com/2019/06/moving-to-zsh/
ログインシェルに /bin/dash を選べるようになってるらしい。
https://support.apple.com/en-us/HT208050
(homebrewの話ではないよ)
302デフォルトの名無しさん
2019/08/21(水) 21:33:59.34ID:l+BF9a7q やっぱりどこでも動くシェルスクリプトなんて幻影なんだね
303デフォルトの名無しさん
2019/08/21(水) 21:46:11.50ID:CEaWdSia >>301
その
https://support.apple.com/en-us/HT208050
How to test your shell scripts
If you change /var/select/sh to a shell other than bash, be aware that scripts that make use of bashisms may not work properly.
からはbashっぽいかなあ。変わった直後でもあるmacOS10.15では
その
https://support.apple.com/en-us/HT208050
How to test your shell scripts
If you change /var/select/sh to a shell other than bash, be aware that scripts that make use of bashisms may not work properly.
からはbashっぽいかなあ。変わった直後でもあるmacOS10.15では
304デフォルトの名無しさん
2019/08/21(水) 21:49:36.68ID:WsJBrYLB >>303
ふーん、まあそういうことでいいよw
ふーん、まあそういうことでいいよw
305デフォルトの名無しさん
2019/08/21(水) 21:51:21.56ID:g3Au7XoK ソートの安定の話はどうなったの?
306デフォルトの名無しさん
2019/08/21(水) 21:54:13.22ID:vg8ZIjZS >>305
行番号が付いてるから、安定以前に並ぶ順番が入れ替わることはない。
> POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
とか言ってるやつが間抜けでした。
(いつもの誤読ばっかりしてるやつだろう)
で終わりじゃない?
行番号が付いてるから、安定以前に並ぶ順番が入れ替わることはない。
> POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
とか言ってるやつが間抜けでした。
(いつもの誤読ばっかりしてるやつだろう)
で終わりじゃない?
307デフォルトの名無しさん
2019/08/21(水) 21:54:40.89ID:CEaWdSia 何が気に障ったのかわからんな
牛乳飲もうw
牛乳飲もうw
308デフォルトの名無しさん
2019/08/21(水) 21:55:01.07ID:3uzLJz9e そういうのいいから
309デフォルトの名無しさん
2019/08/21(水) 21:58:52.30ID:CEaWdSia だよなw
あと、sortはヤツじゃないだろう。もしかして俺?俺でもないぞw
あと、sortはヤツじゃないだろう。もしかして俺?俺でもないぞw
310デフォルトの名無しさん
2019/08/21(水) 22:14:47.06ID:ttxmDenw そういうのいいからw
311デフォルトの名無しさん
2019/08/21(水) 22:16:45.46ID:CEaWdSia だよなあww
312デフォルトの名無しさん
2019/08/22(木) 01:25:13.11ID:Oq4Y6cV4 bashrc zshrc みたいなところに alias 書くと
シェルスクリプトで bash,zsh依存の書くとaliasまで読まれてしまう
\Xxx のようなバックスラッシュを全部に付けるのは読みにくい
alias 全部切る宣言ないか?
シェルスクリプトで bash,zsh依存の書くとaliasまで読まれてしまう
\Xxx のようなバックスラッシュを全部に付けるのは読みにくい
alias 全部切る宣言ないか?
313デフォルトの名無しさん
2019/08/22(木) 01:31:08.84ID:RwKT/aao unalias -a
314デフォルトの名無しさん
2019/08/22(木) 01:32:36.38ID:Oq4Y6cV4 thanks
315デフォルトの名無しさん
2019/08/22(木) 02:09:53.19ID:jM8tCXZ0 >>312
なんかおかしいぞ
aliasはシェルスクリプトには伝搬しない。
現在のシェルにのみ反映する。
例えば、zshでログインして#!/bin/shのシェルスクリプトを起動することを
想像すればなんとなくわかると思うが、別のプロセスになるんだから
zshと(zshではないかもしれない)別のプロセスとaliasが共通になるわけがない。
. (source)でカレントプロセスに読み込むならaliasが働くけど
それはシェルで使うaliasまで全部初期化するってことになるぞ(それでいいんだろうけど)
なんか勘違いか変なことをしてる気がする。
なんかおかしいぞ
aliasはシェルスクリプトには伝搬しない。
現在のシェルにのみ反映する。
例えば、zshでログインして#!/bin/shのシェルスクリプトを起動することを
想像すればなんとなくわかると思うが、別のプロセスになるんだから
zshと(zshではないかもしれない)別のプロセスとaliasが共通になるわけがない。
. (source)でカレントプロセスに読み込むならaliasが働くけど
それはシェルで使うaliasまで全部初期化するってことになるぞ(それでいいんだろうけど)
なんか勘違いか変なことをしてる気がする。
316デフォルトの名無しさん
2019/08/22(木) 02:23:33.98ID:jM8tCXZ0 たまたま関連することをやっていたので気づいたが
zshって設定なしでも以下のaliasを作ってるな
run-help=man
which-command=whence
これを何に使ってるのか知らないけどunalias -aをするとそれが消えてしまう
zshって設定なしでも以下のaliasを作ってるな
run-help=man
which-command=whence
これを何に使ってるのか知らないけどunalias -aをするとそれが消えてしまう
317デフォルトの名無しさん
2019/08/22(木) 16:38:31.14ID:maUgHi90 あんまりbashと関係ないけど
直前のmacのターミナルのログってどっかに自動保存されてたりするもんなのかね
直前のmacのターミナルのログってどっかに自動保存されてたりするもんなのかね
318デフォルトの名無しさん
2019/08/22(木) 16:48:16.03ID:hwVLULCR シェルとは直接関係ない話だが、vimってこんなこともできたんだな。
https://qiita.com/gorilla0513/items/4d1c610f1283bbe46f81
https://qiita.com/gorilla0513/items/4d1c610f1283bbe46f81
319デフォルトの名無しさん
2019/08/22(木) 16:53:37.85ID:jM8tCXZ0320デフォルトの名無しさん
2019/08/22(木) 17:04:13.34ID:hwVLULCR あ、そうなの?
使ったことないから知らなかったよ。
使ったことないから知らなかったよ。
321デフォルトの名無しさん
2019/08/22(木) 17:15:22.21ID:hEbQ4qBk vimでもvscodeでも自分が好きなの使えばええがな
322デフォルトの名無しさん
2019/08/22(木) 20:05:03.45ID:GkmKkRib ターミナルで動かせるメリットは大きい
323デフォルトの名無しさん
2019/08/22(木) 22:15:12.37ID:mlpPC2JR VSCodeは「沢山の機能から自分の欲しいものを選びたい人」向けで
Vim含めUnixツールは「少数の機能から自分の欲しいものを作りたい人」向け。
どっちも利点欠点があるけど,俺は後者かなぁ。
Vim含めUnixツールは「少数の機能から自分の欲しいものを作りたい人」向け。
どっちも利点欠点があるけど,俺は後者かなぁ。
324デフォルトの名無しさん
2019/08/22(木) 22:28:59.84ID:UjFyi9ja > Vim含めUnixツールは「少数の機能から自分の欲しいものを作りたい人」向け。
vimを使う人は、vimの機能を作るのが目的の人ってこと?
本末転倒って言葉知ってる?
vimを使う人は、vimの機能を作るのが目的の人ってこと?
本末転倒って言葉知ってる?
325デフォルトの名無しさん
2019/08/22(木) 23:07:37.71ID:mlpPC2JR Unixマニアにとって「本末転倒」は誉め言葉w
326デフォルトの名無しさん
2019/08/22(木) 23:18:19.55ID:NaJTUw7c Vimは基本的にファイラーとかないから、シェルに移ってコマンド操作しつつ開発するのが普通
なんで、TmuxとかScreenとか併用する
ソースコードのフォーマッターだとかリントみたいなのも直接、間接で外部コマンド叩いて使う
なんで、TmuxとかScreenとか併用する
ソースコードのフォーマッターだとかリントみたいなのも直接、間接で外部コマンド叩いて使う
327デフォルトの名無しさん
2019/08/22(木) 23:18:34.05ID:hEbQ4qBk atom派は出てこないんだな
328デフォルトの名無しさん
2019/08/22(木) 23:19:14.46ID:UjFyi9ja 聞いたことないで?
「unix 本末転倒 誉め言葉 」
検索結果 約 5 件 (0.35 秒)
「unix 本末転倒 誉め言葉 」
検索結果 約 5 件 (0.35 秒)
329デフォルトの名無しさん
2019/08/22(木) 23:20:40.75ID:UjFyi9ja330デフォルトの名無しさん
2019/08/22(木) 23:31:29.63ID:xdlhVqlc このスレ、ダメだね
331デフォルトの名無しさん
2019/08/22(木) 23:36:33.00ID:hEbQ4qBk あー俺はvimmerだからw
vscode悪くないけどviキーバインドがイマイチ
exコマンド使えんのがストレスで里帰りしたわ
vscode悪くないけどviキーバインドがイマイチ
exコマンド使えんのがストレスで里帰りしたわ
332デフォルトの名無しさん
2019/08/22(木) 23:50:38.35ID:bojKrn/j テキストなら、vim
Ruby, Julia なら、VScode で、
グラフなら、Jupyter Notebook
Ruby, Julia なら、VScode で、
グラフなら、Jupyter Notebook
333デフォルトの名無しさん
2019/08/22(木) 23:57:59.62ID:mlpPC2JR 検索結果がすべてだと思ってる御坊ちゃまかわいい
334デフォルトの名無しさん
2019/08/23(金) 08:47:14.32ID:Wcc23IuY UNIX哲学こそ正義(GNUのlsやsystemdから目を背けながら)
335デフォルトの名無しさん
2019/08/23(金) 10:13:29.68ID:mT51SH+B gitとかUnixの哲学の正反対だよな
336デフォルトの名無しさん
2019/08/23(金) 11:56:56.10ID:UifFOlyJ だってLinuxの作者が作ったコマンドだからな。
337デフォルトの名無しさん
2019/08/23(金) 11:59:37.65ID:UifFOlyJ ていうかGNU lsもsystemdも「Unix環境で使える」というだけで「Unix哲学に基づいてる」とは標榜してないしねぇ。
ま,俺は別にUnix哲学が絶対的正義とは思ってないけど。
ただ自分で作るツールはUnix哲学とユーザビリティを両立させるべく努力してるけど。
ま,俺は別にUnix哲学が絶対的正義とは思ってないけど。
ただ自分で作るツールはUnix哲学とユーザビリティを両立させるべく努力してるけど。
338デフォルトの名無しさん
2019/08/23(金) 19:53:15.50ID:ge92wy5O 単機能のコマンド
標準入出力という共通インターフェース
それらを組み合わせて処理する
この思想を最初に知った時は感動したな
Small is beautiful.
標準入出力という共通インターフェース
それらを組み合わせて処理する
この思想を最初に知った時は感動したな
Small is beautiful.
339デフォルトの名無しさん
2019/08/23(金) 20:11:00.47ID:Kka1jIND ls
340デフォルトの名無しさん
2019/08/23(金) 20:24:40.67ID:GCcQKmFF パイプが強烈なので他の言語のときもできるだけフィルターで機能するように書いている
Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード
しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば
Yyyは任意の言語で大丈夫
シェルスクリプトが背景にあるのは間違いない
Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード
しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば
Yyyは任意の言語で大丈夫
シェルスクリプトが背景にあるのは間違いない
341デフォルトの名無しさん
2019/08/24(土) 00:25:49.01ID:AZIGFNIF 何にせよ「ベンダ形式に依存しない」というのが遥か昔に実現できていただけでも評価できる。
今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの
それらが無い時代によくも思い付いたなと。
今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの
それらが無い時代によくも思い付いたなと。
342デフォルトの名無しさん
2019/08/24(土) 01:34:35.98ID:dr4oD/Ll パイプとJSON, XMLを比較するとはね。
ヘリコプターと日本語を比べて云々するようなものだ。
ヘリコプターと日本語を比べて云々するようなものだ。
343デフォルトの名無しさん
2019/08/24(土) 02:19:04.83ID:AZIGFNIF 例え下手すぎて草
普通に説明したほうがマシだな。
普通に説明したほうがマシだな。
344デフォルトの名無しさん
2019/08/24(土) 02:52:37.93ID:T//47Bbt パイプとJSON, XMLを比較するとはね。
チンコとペニシリンを比べて云々するようなものだ。
チンコとペニシリンを比べて云々するようなものだ。
345デフォルトの名無しさん
2019/08/24(土) 03:13:32.51ID:ctAc+SuL 単にデータフォーマットの話でしょ?
昔は行指向が普通だったからCSVが良く使われたな。
今でも使うけど。Cはcharacterね。
それからXML,JSON,YAML,TOMLと規格が増えていった。
PowerShellはオブジェクトをパイプに流せるんだよな。
昔は行指向が普通だったからCSVが良く使われたな。
今でも使うけど。Cはcharacterね。
それからXML,JSON,YAML,TOMLと規格が増えていった。
PowerShellはオブジェクトをパイプに流せるんだよな。
346デフォルトの名無しさん
2019/08/24(土) 03:48:51.30ID:GJDIT1Pg 行指向はデータ処理がすぐに行えるって利点があるんだよな
XMLは全体を<xml>でくくるという仕様だからデータが全部揃って
タグが終了するまで処理できない。大きなデータをストリーミングで
受け取りながら処理していくということに向いていない。
ドキュメント専用と考えたほうがいい。
同じ問題はJSONにもある。ただしJSONLならJSONを使いつつも
行指向になってるからJSONを使いながらも行指向的なデータ処理が行える。
XMLは全体を<xml>でくくるという仕様だからデータが全部揃って
タグが終了するまで処理できない。大きなデータをストリーミングで
受け取りながら処理していくということに向いていない。
ドキュメント専用と考えたほうがいい。
同じ問題はJSONにもある。ただしJSONLならJSONを使いつつも
行指向になってるからJSONを使いながらも行指向的なデータ処理が行える。
347デフォルトの名無しさん
2019/08/24(土) 06:30:43.05ID:z5CiWEzT 正規表現で引っ掛けるしかないもんな
348デフォルトの名無しさん
2019/08/24(土) 06:54:04.43ID:AZIGFNIF349デフォルトの名無しさん
2019/08/24(土) 13:27:01.13ID:dr4oD/Ll 混用してるのは>>341
>>340-341を再掲。
340 デフォルトの名無しさん sage 2019/08/23(金) 20:24:40.67 ID:GCcQKmFF
パイプが強烈なので他の言語のときもできるだけフィルターで機能するように書いている
Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード
しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば
Yyyは任意の言語で大丈夫
シェルスクリプトが背景にあるのは間違いない
341 デフォルトの名無しさん sage 2019/08/24(土) 00:25:49.01 ID:AZIGFNIF
何にせよ「ベンダ形式に依存しない」というのが遥か昔に実現できていただけでも評価できる。
今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの
それらが無い時代によくも思い付いたなと。
>>340-341を再掲。
340 デフォルトの名無しさん sage 2019/08/23(金) 20:24:40.67 ID:GCcQKmFF
パイプが強烈なので他の言語のときもできるだけフィルターで機能するように書いている
Xxx の言語で書くと import use require ... ができるのは Xxx の言語でかかれたコード
しかし、パイプを開いて | ./Yyy arg1 arg2 ... とすれば
Yyyは任意の言語で大丈夫
シェルスクリプトが背景にあるのは間違いない
341 デフォルトの名無しさん sage 2019/08/24(土) 00:25:49.01 ID:AZIGFNIF
何にせよ「ベンダ形式に依存しない」というのが遥か昔に実現できていただけでも評価できる。
今だとテキスト形式より表現能力の高いJSON,更に高いXML with NS & XSDがあるのものの
それらが無い時代によくも思い付いたなと。
350デフォルトの名無しさん
2019/08/24(土) 13:37:16.85ID:ctAc+SuL351デフォルトの名無しさん
2019/08/24(土) 13:37:41.91ID:GJDIT1Pg ベンダ形式に依存しない?
psコマンドのオプションと出力フォーマットを見てから言え
psコマンドのオプションと出力フォーマットを見てから言え
352デフォルトの名無しさん
2019/08/24(土) 13:49:16.53ID:ctAc+SuL nodejs使いならawkwardというシェルが面白い
コマンド出力をオブジェクト配列に変換してforEachで回せる
コマンド出力をオブジェクト配列に変換してforEachで回せる
353デフォルトの名無しさん
2019/08/24(土) 18:36:54.54ID:AZIGFNIF >>351
なんの為のPOSIXだと思ってるんだw
なんの為のPOSIXだと思ってるんだw
354デフォルトの名無しさん
2019/08/24(土) 21:05:39.09ID:wirrzXpF >>353
つまらない
つまらない
355デフォルトの名無しさん
2019/08/24(土) 23:30:16.23ID:AZIGFNIF そりゃおめーを笑わす目的じゃなくて俺が笑う目的で書き込んだんだからなw
つまらないのは当然
つまらないのは当然
356デフォルトの名無しさん
2019/08/24(土) 23:33:11.08ID:GJDIT1Pg https://www.weblio.jp/content/%E3%81%A4%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84
B とりあげるだけの価値がない。取るに足りない。下らない。 「 − ・ないものを買ってしまった」 「 − ・ないうわさ」 〔「つまらないものですが」などの形で,相手に贈る品物を謙遜していう場合にも用いられる。「−・ないものですが,召し上がって下さい」〕
B とりあげるだけの価値がない。取るに足りない。下らない。 「 − ・ないものを買ってしまった」 「 − ・ないうわさ」 〔「つまらないものですが」などの形で,相手に贈る品物を謙遜していう場合にも用いられる。「−・ないものですが,召し上がって下さい」〕
357デフォルトの名無しさん
2019/08/24(土) 23:50:48.54ID:vHj0a3Gd 笑ってるんじゃなくて笑われてるだけでは
358デフォルトの名無しさん
2019/08/25(日) 00:04:21.62ID:a7DQLwJd 原理主義者の自称神様には何を言ってもムダ
359デフォルトの名無しさん
2019/08/25(日) 00:09:42.96ID:hoACBN+G sortの話どうなったんだよ?自称神様
360デフォルトの名無しさん
2019/08/25(日) 00:40:36.59ID:2WZBdFxH361デフォルトの名無しさん
2019/08/25(日) 02:30:04.13ID:RhAWwavs 再掲してやろうw
> From: [36] デフォルトの名無しさん <sage>
> Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG
>
> 現実世界では私は神なのだ
さっさとsortコマンドの話に答えろよw
> From: [36] デフォルトの名無しさん <sage>
> Date: 2019/08/11(日) 16:10:55.15 ID:++HFlOfG
>
> 現実世界では私は神なのだ
さっさとsortコマンドの話に答えろよw
362デフォルトの名無しさん
2019/08/25(日) 03:09:53.26ID:ssItiA2j しつこい
363デフォルトの名無しさん
2019/08/25(日) 03:49:52.04ID:hoACBN+G364デフォルトの名無しさん
2019/08/25(日) 04:39:23.92ID:edoCEBS2 神というだけあってシェルスクリプトに詳しいよな
365デフォルトの名無しさん
2019/08/25(日) 04:45:30.28ID:ve1RKgr6 >>361
だっさw
だっさw
366デフォルトの名無しさん
2019/08/25(日) 05:11:51.88ID:X8LrMnru367デフォルトの名無しさん
2019/08/25(日) 09:58:11.98ID:ve1RKgr6 粘着うぜーな
どーでもいいわ
どーでもいいわ
368デフォルトの名無しさん
2019/08/25(日) 11:32:58.43ID:coCCl2cg 簡単なシェルスクリプトならコピペせず書けるようになったけど他にも言語覚えた方がいいのかしら
sedにgrepにawkならかなり世話になってるけどpythonやrubyとは無縁なんだわ
シェルはbashに篭ってても困らんしな
sedにgrepにawkならかなり世話になってるけどpythonやrubyとは無縁なんだわ
シェルはbashに篭ってても困らんしな
369デフォルトの名無しさん
2019/08/25(日) 12:52:50.34ID:RhAWwavs 粘着っていうか自業自得では。自称神さまw
370デフォルトの名無しさん
2019/08/25(日) 13:36:51.55ID:1wFl7XLL いいからシェルスクリプトの話をしてくださいよ
じゃまですよ
じゃまですよ
371デフォルトの名無しさん
2019/08/25(日) 13:49:29.02ID:a7DQLwJd お前がしてもええんやで
372デフォルトの名無しさん
2019/08/25(日) 14:04:56.36ID:ve1RKgr6 俺が自称神さまかよw
373デフォルトの名無しさん
2019/08/25(日) 14:11:34.62ID:ve1RKgr6 >>368
他になに書ける?
他になに書ける?
374デフォルトの名無しさん
2019/08/25(日) 15:01:36.04ID:1wFl7XLL 仕事で使ったことがある言語縛りで言えば、
Ruby、JavaScript、Java、C、C++、Python、C#、Perl、PHP、VB6
これぐらいかなぁ?
Ruby、JavaScript、Java、C、C++、Python、C#、Perl、PHP、VB6
これぐらいかなぁ?
375デフォルトの名無しさん
2019/08/25(日) 17:42:40.59ID:7+B4jEzI 聞いてない
376デフォルトの名無しさん
2019/08/25(日) 17:51:41.37ID:ssItiA2j あー当人じゃねーのか
377デフォルトの名無しさん
2019/08/25(日) 20:05:36.28ID:lm+LknRP378デフォルトの名無しさん
2019/08/25(日) 20:06:08.69ID:coCCl2cg379デフォルトの名無しさん
2019/08/26(月) 02:33:05.90ID:zrSc8z1e sedは使うが、awkまでは使いこなせない。
代わりにperlのワンライナーで賄っちゃう。
代わりにperlのワンライナーで賄っちゃう。
380デフォルトの名無しさん
2019/08/26(月) 04:00:11.44ID:9u1tekMW PerlはWebサーバーも作れるスクリプト言語だからな。
381デフォルトの名無しさん
2019/08/26(月) 04:09:12.67ID:NWn2YSWg やっぱりシェルスクリプトの利点は
Linux/Unix系ならどんな環境でも最初から入ってるという点と
普段プロンプトから入力しているものと同じコマンドで動くという点だと思う
そのメリットが、メリットにならないような場面では他の言語がいい
Linux/Unix系ならどんな環境でも最初から入ってるという点と
普段プロンプトから入力しているものと同じコマンドで動くという点だと思う
そのメリットが、メリットにならないような場面では他の言語がいい
382デフォルトの名無しさん
2019/08/26(月) 04:32:57.21ID:Y1KwJO8H やたら短く書けるのも良い点だと思う
383デフォルトの名無しさん
2019/08/26(月) 08:29:42.50ID:9u1tekMW 短かく書けるプログラミング言語なんて
ジョークではなく実用的なのでさえごまんとあるんだから
あんまりシェルスクリプトの特筆すべき魅力とは言えんだろう
ジョークではなく実用的なのでさえごまんとあるんだから
あんまりシェルスクリプトの特筆すべき魅力とは言えんだろう
384デフォルトの名無しさん
2019/08/26(月) 09:14:52.23ID:CMmg/EPX Brainfuck「ふん」
385デフォルトの名無しさん
2019/08/26(月) 09:19:30.79ID:CMmg/EPX386デフォルトの名無しさん
2019/08/26(月) 10:12:59.25ID:easMKtRj ソルバー系はやっていた方がいいと思う。
387デフォルトの名無しさん
2019/08/26(月) 11:41:59.66ID:2xzzFsoU ソルバー系って?Prologとかのことですか?
388デフォルトの名無しさん
2019/08/26(月) 12:36:08.60ID:NWn2YSWg 今日のお昼はザルソルバー
389デフォルトの名無しさん
2019/08/26(月) 15:31:55.55ID:7r1lWQhX これは座布団没収
390デフォルトの名無しさん
2019/08/26(月) 16:47:04.44ID:4xLfK+jj 審議中(AA略)
391デフォルトの名無しさん
2019/08/26(月) 19:43:05.91ID:lDnuBORI perlは便利っていうが専ら正規表現専用機になってる
ほぼsedとして使えるんでつい
ほぼsedとして使えるんでつい
392デフォルトの名無しさん
2019/08/26(月) 22:19:06.53ID:bOZvrPaH perlで使える正規表現文字クラスは、
POSIXの正規表現文字クラスより簡単に書けるから、
sedより楽といえば楽だよね。
POSIXの正規表現文字クラスより簡単に書けるから、
sedより楽といえば楽だよね。
393デフォルトの名無しさん
2019/08/26(月) 22:35:23.01ID:pJei9Vjv GNU sed だとコンパイルオプションを追加すれば PCRE が
使える(-R オプション)らしいな
使える(-R オプション)らしいな
394デフォルトの名無しさん
2019/08/27(火) 09:47:28.46ID:jAZb3mMb perlの存在を知る前から\dや\wは使ってたからこれが使えねぇって言われた時は焦ったわ
正規表現入門では当然のようにperl版を使うけど正規表現の種類までは解説しないからな
基本だの拡張だの方言があるって知ったのはvimやgrepで悩んだ時だし
正規表現入門では当然のようにperl版を使うけど正規表現の種類までは解説しないからな
基本だの拡張だの方言があるって知ったのはvimやgrepで悩んだ時だし
395デフォルトの名無しさん
2019/08/27(火) 12:20:19.16ID:WoMQ7lMm sed は n で次の行に簡単に飛ばせるのが使いやすかった
もっとも多くの行送りは読みにくいので過信できないが
もっとも多くの行送りは読みにくいので過信できないが
396デフォルトの名無しさん
2019/08/27(火) 18:42:49.47ID:AbLHt6c7 perlでは[\s\S]でほぼ同じことができるけどね
397デフォルトの名無しさん
2019/08/28(水) 05:11:25.57ID:mFl1zXF1 C言語とシェルスクリプトの対比・協調について
「シェルスクリプトは文字列処理がある程度得意で
キャラクタによるユーザーインターフェースを作るのに向いている。
一方C言語は↑このような操作は不得手であるが
素早い数値計算やシステムAPI呼出しは向いている。
だからインターフェースはシェルスクリプトで書いて
シェルスクリプトで適切に処理した引数(例えばヌル文字を削除したり数値だけにしたり)
をC言語をコンパイルしたプログラムに渡すようにすれば
「早くて堅牢、かつ使いやすい」システムができる」
こういうのってどの程度正しい?
「シェルスクリプトは文字列処理がある程度得意で
キャラクタによるユーザーインターフェースを作るのに向いている。
一方C言語は↑このような操作は不得手であるが
素早い数値計算やシステムAPI呼出しは向いている。
だからインターフェースはシェルスクリプトで書いて
シェルスクリプトで適切に処理した引数(例えばヌル文字を削除したり数値だけにしたり)
をC言語をコンパイルしたプログラムに渡すようにすれば
「早くて堅牢、かつ使いやすい」システムができる」
こういうのってどの程度正しい?
398デフォルトの名無しさん
2019/08/28(水) 05:39:32.47ID:K2P0GJ1V 言語なんて色々有るし、C言語と対比しないほうがいいのでは?
399デフォルトの名無しさん
2019/08/28(水) 07:27:17.72ID:Z/4RZqPN >>397
どこから突っ込んでいいか分からないくらいピンぼけな文章
どこから突っ込んでいいか分からないくらいピンぼけな文章
400デフォルトの名無しさん
2019/08/28(水) 07:38:14.25ID:JyOge16s 20年前からタイムスリップしてきたんだ。許してくれ
401デフォルトの名無しさん
2019/08/28(水) 08:10:37.66ID:j4+M+GB0 >>397
ちんぼ
ちんぼ
402デフォルトの名無しさん
2019/08/28(水) 10:41:08.33ID:gV1iThk/ 昭和何年からタイムスリップしてきたのか?
403デフォルトの名無しさん
2019/08/28(水) 11:20:21.46ID:ddpchJVU 可読性が高く、CUI が作りやすい言語は、Ruby。
テキスト処理・コマンド作り・1-liner も得意
ただし、Rubyは遅いから、
ベクトル演算などを速く処理したいなら、C言語で作った、NArray ライブラリを呼び出す
その速さは、数値計算専門言語のOctave にも匹敵する!
テキスト処理・コマンド作り・1-liner も得意
ただし、Rubyは遅いから、
ベクトル演算などを速く処理したいなら、C言語で作った、NArray ライブラリを呼び出す
その速さは、数値計算専門言語のOctave にも匹敵する!
404デフォルトの名無しさん
2019/08/28(水) 11:31:26.07ID:Dqewl7QB スクリプトの中で起動速度が一番速いのがシェルスクリプト。次がPerl。
その次はPythonとPHPが同着ぐらい。
Rubyはひときわ遅くて、シェルスクリプトの50倍。Python、PHPの3倍遅い
その次はPythonとPHPが同着ぐらい。
Rubyはひときわ遅くて、シェルスクリプトの50倍。Python、PHPの3倍遅い
405デフォルトの名無しさん
2019/08/28(水) 11:52:55.32ID:Z/4RZqPN TwitterはRuby on Railsで書かれていたがScalaで書き直した
それは大量のトラフィックを捌き切れなくなったからだ
パフォーマンスの問題を解決しない限りは
死んだと言われても仕方がないな
それは大量のトラフィックを捌き切れなくなったからだ
パフォーマンスの問題を解決しない限りは
死んだと言われても仕方がないな
406デフォルトの名無しさん
2019/08/28(水) 12:15:10.11ID:wbjCXnts railsってどんぐらいの規模ならいけるの
407デフォルトの名無しさん
2019/08/28(水) 14:38:52.61ID:odAj9D7Z もう10年以上前だけど、Twitterの開発者が何かのインタビューでScala移行した理由としてRubyは自前で型チェックを大量に記述しないといけないから、JavaやScalaみたいに型を指定するほうがいいって気づいたみたいなこと言ってた
海外のプログラミングサイトみたいなやつで、当時少し話題になったけど、探せばまだ見つかるかも
海外のプログラミングサイトみたいなやつで、当時少し話題になったけど、探せばまだ見つかるかも
408デフォルトの名無しさん
2019/08/28(水) 17:24:45.64ID:ZwB1MHJ/ すごいわかる
動的型付け言語使ってユニットテストで型チェック書くのギャグかよってぐらい馬鹿げてる
動的型付け言語使ってユニットテストで型チェック書くのギャグかよってぐらい馬鹿げてる
409デフォルトの名無しさん
2019/08/28(水) 20:00:01.16ID:Z/4RZqPN 静的型付け言語の時代になったな
Scala,Rust,Swift,TypeScript...
パフォーマンスチューニングに労力使いたくないよな
Scala,Rust,Swift,TypeScript...
パフォーマンスチューニングに労力使いたくないよな
410デフォルトの名無しさん
2019/08/28(水) 23:53:16.25ID:7Kt8r9pr ちょっとperlを覚える気になったけどなんで書きやすいやすくて読みにくいのか分かったわ
記号で変数の使い分ける時点でダメだった
正規表現さえ出来ればいいんだけどPerl6の展望ってどうなんですかね
記号で変数の使い分ける時点でダメだった
正規表現さえ出来ればいいんだけどPerl6の展望ってどうなんですかね
411デフォルトの名無しさん
2019/08/28(水) 23:54:49.23ID:ddpchJVU Rails 6 では、DHH のいるBasecamp 社から、GitHub へ移籍した、Eileen Uchitelle が、
複数データベース接続(read replica)と、ブラウザによるE2E の並列テストを実装した
最近のRailsは、大規模用
Basecamp, GitHub, Shopify 社などが中心。
日本では、Cookpad, マネーフォワード、Ruby開発とか
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
この本は、10年以上やってないと、難しすぎて読めない。
だから、サーバー側をNode.js に変えることは難しい
同様に、Go も難しいから、現時点では、Ruby になる!
複数データベース接続(read replica)と、ブラウザによるE2E の並列テストを実装した
最近のRailsは、大規模用
Basecamp, GitHub, Shopify 社などが中心。
日本では、Cookpad, マネーフォワード、Ruby開発とか
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
この本は、10年以上やってないと、難しすぎて読めない。
だから、サーバー側をNode.js に変えることは難しい
同様に、Go も難しいから、現時点では、Ruby になる!
412デフォルトの名無しさん
2019/08/29(木) 00:22:15.02ID:VY7wxkJm シェルスクリプトと同じぐらいの速度とブログで読んで
perl6の処理系が高速化するまでは導入延期予定
速度さえなんとかなれば併用するつもり 新型の正規表現クール
---
perl5 の正規表現は
(?{perl-code})
(??{perl-code})
などがあるから使えると便利
perl6の処理系が高速化するまでは導入延期予定
速度さえなんとかなれば併用するつもり 新型の正規表現クール
---
perl5 の正規表現は
(?{perl-code})
(??{perl-code})
などがあるから使えると便利
413デフォルトの名無しさん
2019/08/29(木) 00:40:07.63ID:mztHiQ0L まあ考え方次第なんだけどね
$や@を使うことでスカラー変数と配列変数と連想配列変数を厳密に区別できて、違う型の変数に代入できなくするっていう
Perl6は更に進んで、静的な型指定をできるようにしようって、2000年代前半の時点で今のPHPとかJSがやろうとして方向に進んでたんだけど
$や@を使うことでスカラー変数と配列変数と連想配列変数を厳密に区別できて、違う型の変数に代入できなくするっていう
Perl6は更に進んで、静的な型指定をできるようにしようって、2000年代前半の時点で今のPHPとかJSがやろうとして方向に進んでたんだけど
414デフォルトの名無しさん
2019/08/29(木) 01:56:31.92ID:mPTYynKQ415デフォルトの名無しさん
2019/08/29(木) 09:08:01.33ID:VG5IecJ5 童貞「俺の知ってる性器表現と違う」
416デフォルトの名無しさん
2019/08/29(木) 20:01:19.83ID:jZJUsq6Z 定期的にruby布教しては信者を得られず帰っていく
逆効果だと思うんだけどなw
逆効果だと思うんだけどなw
417デフォルトの名無しさん
2019/08/29(木) 20:57:49.50ID:VG5IecJ5418デフォルトの名無しさん
2019/08/30(金) 00:19:45.85ID:LpXSw35l 日本軍は現場を知らない奴が出世して参謀とかになってるからおかしいことになった
自分は死ぬ気が無いのに他人に市ねと命令するクズ
rubyの人は現場で手を動かしてる分、かなりマシ
自分は死ぬ気が無いのに他人に市ねと命令するクズ
rubyの人は現場で手を動かしてる分、かなりマシ
419デフォルトの名無しさん
2019/08/30(金) 02:13:05.42ID:/ghu33Nb その肝心要の現場でRubyが動いてないって話をしてんだよなぁ…
420デフォルトの名無しさん
2019/08/30(金) 02:39:34.78ID:1KmU2S17 ム版でここまでヘイトを集められるのはある意味ユニークスキル
421デフォルトの名無しさん
2019/08/30(金) 05:01:24.34ID:+D5+4uT9 貴様ら!大日本帝国陸海軍を愚弄するか!
Ruby如きの比喩に使うな馬鹿者が!
Ruby如きの比喩に使うな馬鹿者が!
422デフォルトの名無しさん
2019/08/30(金) 05:19:46.60ID:Nlc2IKSs ここ以外にプログラミングについて活発に議論してるとこってある?
QiitaとかTwitterみたいなとこじゃなくて匿名でかしこまってないのがええ
QiitaとかTwitterみたいなとこじゃなくて匿名でかしこまってないのがええ
423デフォルトの名無しさん
2019/08/30(金) 06:18:12.78ID:LpXSw35l >>421
今の日本では馬鹿の象徴だよ?帝国陸海軍
今の日本では馬鹿の象徴だよ?帝国陸海軍
424デフォルトの名無しさん
2019/08/30(金) 07:57:05.44ID:yjTPnYwz つーかなんで日本軍が出てくるのか意味不明
425デフォルトの名無しさん
2019/08/30(金) 08:10:38.43ID:jhLEZvWx 大失敗の象徴としてだろけど、Rubyと絡めるのは意味不明
なんであれどういうものであれ批判するヤツ、アンチはことさら大げさに言うのが定番のだろう
なんであれどういうものであれ批判するヤツ、アンチはことさら大げさに言うのが定番のだろう
426デフォルトの名無しさん
2019/08/30(金) 08:49:34.60ID:1L0XShC3 やれやれ、じゃあまた俺がシェルスクリプトのお題でも出してやろうかね?
427デフォルトの名無しさん
2019/08/30(金) 08:53:17.88ID:1L0XShC3 じゃあいつもとは趣向を変える
Bourne ShellとPOSIXシェルの違いを教えて下さい。
Bourne ShellとPOSIXシェルの違いを教えて下さい。
428デフォルトの名無しさん
2019/08/30(金) 08:53:40.01ID:1L0XShC3 じゃあいつもとは趣向を変えて
と書こうとしたw
と書こうとしたw
429デフォルトの名無しさん
2019/08/30(金) 09:03:36.53ID:jhLEZvWx いつもの承認欲求だけだろ
430デフォルトの名無しさん
2019/08/30(金) 09:07:30.27ID:yjTPnYwz >>422
知恵袋いけ
知恵袋いけ
431デフォルトの名無しさん
2019/08/30(金) 09:30:45.39ID:1L0XShC3 Bourne ShellとPOSIXシェルの違い、教えてくださらぬか?
432デフォルトの名無しさん
2019/08/30(金) 10:04:47.60ID:BnHn7wdj 日英両対応のクリップボードへのコピーとペーストの部分どうしてる?
cygwin Linux mac などを
uname | grep "CYGWIN" > /dev/null && do-something
のようなかんじの分岐を copy_to_clipboard paste_from_clipboard で考えている
そして コピーのときに
cygwin だと > /dev/clipboard
linux や mac だと別の何かになる
本当は perlモジュールの Clipboard が OS の差異を吸収してくれる予定だったが
日本語だけはうまく処理してくれないから半分車輪の最発明ののようなことになった
cygwin Linux mac などを
uname | grep "CYGWIN" > /dev/null && do-something
のようなかんじの分岐を copy_to_clipboard paste_from_clipboard で考えている
そして コピーのときに
cygwin だと > /dev/clipboard
linux や mac だと別の何かになる
本当は perlモジュールの Clipboard が OS の差異を吸収してくれる予定だったが
日本語だけはうまく処理してくれないから半分車輪の最発明ののようなことになった
433デフォルトの名無しさん
2019/08/30(金) 10:50:41.75ID:1L0XShC3 そんなことやろうと思ったこともないんだが、
どうやってSSH越しにクリップボードに入れられるんだ?
それシェルの機能なのか?端末の機能では?
どうやってSSH越しにクリップボードに入れられるんだ?
それシェルの機能なのか?端末の機能では?
434デフォルトの名無しさん
2019/08/30(金) 10:57:15.04ID:BnHn7wdj SSH 超しじゃなく、ポータブルなコードが欲しかった
環境によってクリップボードのアクセス違うから
Xxx | copy_to_clipboad
paste_from_clipboard | Yyy
のように書けたら楽じゃないか?
環境によってクリップボードのアクセス違うから
Xxx | copy_to_clipboad
paste_from_clipboard | Yyy
のように書けたら楽じゃないか?
435デフォルトの名無しさん
2019/08/30(金) 11:18:44.20ID:yjTPnYwz macはpbpaste/pbcopy
linuxはxselかxclip
linuxはxselかxclip
436デフォルトの名無しさん
2019/08/30(金) 11:28:41.14ID:BnHn7wdj thanks
437デフォルトの名無しさん
2019/08/30(金) 11:34:05.64ID:1L0XShC3 コピペしたいとか思わないからなぁ。
コピーはともかくペーストしたいわけでバイナリのペーストもなくはないけど
通常は出力したテキストのペーストでしょ?
ファイルに書き出せばいいじゃんって思っちゃう。
まあ別にコピペを否定したいわけじゃなくて、やろうと思わないなって話。
コピーはともかくペーストしたいわけでバイナリのペーストもなくはないけど
通常は出力したテキストのペーストでしょ?
ファイルに書き出せばいいじゃんって思っちゃう。
まあ別にコピペを否定したいわけじゃなくて、やろうと思わないなって話。
438デフォルトの名無しさん
2019/08/30(金) 18:38:47.93ID:CkOCkFW4 Cygwinならclip.exeを呼び出せばいいんじゃない
439デフォルトの名無しさん
2019/08/30(金) 19:33:44.50ID:yjTPnYwz440デフォルトの名無しさん
2019/08/31(土) 00:01:36.74ID:nixiltP4 getclipboard使えば
441デフォルトの名無しさん
2019/08/31(土) 02:48:40.05ID:0iGUnrw4 クリップボードみたいなGUIに強く依存した(例えば画像や装飾のある文章を切り貼りできる)機能は
なかなかOS間・ベンダー間で協調したり標準化したりするのが難しそう。
素人考えだが。
なかなかOS間・ベンダー間で協調したり標準化したりするのが難しそう。
素人考えだが。
442デフォルトの名無しさん
2019/08/31(土) 03:00:42.96ID:4qIvp+ND httpみたいにMIMEを流用すればいいんじゃないの?
扱えないタイプはぺっすればいいんだし
扱えないタイプはぺっすればいいんだし
443デフォルトの名無しさん
2019/08/31(土) 08:47:44.75ID:0iGUnrw4 ではその旨を各社にお伝えください。
444デフォルトの名無しさん
2019/08/31(土) 08:49:53.41ID:0iGUnrw4 一個人がアレコレ妄想するぶんには訳ないけど、各々のベンダーが顧客の体験を変えることなく(つまりインターフェース面での過去互換性を最小限にして)
「ぼくのかんがえたさいきょう」のクリップボード仕様を採用してくれるとは到底思えんがね。
「ぼくのかんがえたさいきょう」のクリップボード仕様を採用してくれるとは到底思えんがね。
445デフォルトの名無しさん
2019/08/31(土) 13:00:30.93ID:LtUqD47M クリップボードってそのままのデータをやり取りするIPCだろ
446デフォルトの名無しさん
2019/08/31(土) 13:02:39.70ID:MkewyPY7 それはパイプ。クリップボードはクリップボード
447デフォルトの名無しさん
2019/08/31(土) 13:08:50.01ID:LtUqD47M クリップボードは共有メモリだろパイプじゃない
448デフォルトの名無しさん
2019/08/31(土) 13:13:42.31ID:MkewyPY7 IPCというならだよ。プロセス間通信という感じではない、言うような共有メモリだな
どのプロセスが書いたのか知らん知ってるフォーマットのデータを読むだけだし
どのプロセスが書いたのか知らん知ってるフォーマットのデータを読むだけだし
449デフォルトの名無しさん
2019/08/31(土) 13:18:28.51ID:LtUqD47M IPCは共有メモリ、セマフォ、パイプなどのプロセス間通信の総称なんだが
450デフォルトの名無しさん
2019/08/31(土) 13:22:09.06ID:MkewyPY7 共有メモリは広義にはIPCに含まれるだろうが、通信ではないし、クリップボードはプロセス間通信ではないな
共有メモリを使ったプロセス間通信はあるだろうけど、クリップボードがプロセス間通信かと言えば違うだろう。パイプはもろにプロセス間通信という
クリップボードってそのままのデータをやり取りする共有メモリだろ
でまさしくだし、それでいいんじゃね
共有メモリを使ったプロセス間通信はあるだろうけど、クリップボードがプロセス間通信かと言えば違うだろう。パイプはもろにプロセス間通信という
クリップボードってそのままのデータをやり取りする共有メモリだろ
でまさしくだし、それでいいんじゃね
451デフォルトの名無しさん
2019/08/31(土) 13:26:20.90ID:LtUqD47M 共有メモリは広義にも狭義にもプロセス間通信なんだが
プロセス間でデータをやり取りするための機構だ
プロセス間でデータをやり取りするための機構だ
452デフォルトの名無しさん
2019/08/31(土) 13:36:21.83ID:MkewyPY7 プロセス間でデータのやりとりさえできれば、通信するプロセス間の関係性即時性一時性なんて全く関係ないのもプロセス間通信と思えるならそうだろな
そもそもプロセス間通信をするために用意したのが共有メモリだと思うよ。共有メモリを使うから=プロセス間通信ではないだろうとは俺は思うけど。ファイルシステムもIPCになる感じになるな、そのままのデータをやり取りするなら
そもそもプロセス間通信をするために用意したのが共有メモリだと思うよ。共有メモリを使うから=プロセス間通信ではないだろうとは俺は思うけど。ファイルシステムもIPCになる感じになるな、そのままのデータをやり取りするなら
453デフォルトの名無しさん
2019/08/31(土) 13:39:19.82ID:iNpyZmkw つーかどれとどれのプロセスの通信なんだよw
454デフォルトの名無しさん
2019/08/31(土) 13:40:17.30ID:iNpyZmkw コピペは重要な機能なのに、標準化されなかったから
vimからemacsへのコピペすら出来ない
vimからemacsへのコピペすら出来ない
455デフォルトの名無しさん
2019/08/31(土) 13:40:59.50ID:iNpyZmkw UNIX思想の限界の一つだよな
456デフォルトの名無しさん
2019/08/31(土) 13:43:50.78ID:LtUqD47M IPCの意味調べてこいよ
オレオレ定義を語られても困るんだけど
オレオレ定義を語られても困るんだけど
457デフォルトの名無しさん
2019/08/31(土) 13:48:52.24ID:MkewyPY7 自分でも共有メモリと言っているのに、IPCに拘る方がわからんわ
クリップボードがIPCと言われると違和感しかないな。ファイルシステムもになるからw言っている意味がわからんのならIPCとはなんのためになんぞやを調べた方がいいよ
クリップボードがIPCと言われると違和感しかないな。ファイルシステムもになるからw言っている意味がわからんのならIPCとはなんのためになんぞやを調べた方がいいよ
458デフォルトの名無しさん
2019/08/31(土) 13:51:06.96ID:LtUqD47M だからおまえが調べてこいよ
わけわからんやつだな
わけわからんやつだな
459デフォルトの名無しさん
2019/08/31(土) 13:56:35.05ID:ndYyEVRN 調べてきたぞ。そのうえで意見は何も変わらん。
なにか言いたいなら、自分の口で言いたまえ
つーか俺が不利になることを俺が調べると思ってんの?w
なにか言いたいなら、自分の口で言いたまえ
つーか俺が不利になることを俺が調べると思ってんの?w
460デフォルトの名無しさん
2019/08/31(土) 13:57:20.39ID:LtUqD47M じゃあ頭悪いんだから無理するなよ
461デフォルトの名無しさん
2019/08/31(土) 13:57:22.41ID:MkewyPY7 言われるまでもなく知ってるよというのを匂わせていたんだけどww
プロセスがどのプロセスが(読むか読まれるか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む
対象が共有メモリだからIPCとでも言っているようだけど?だからIPCとはなんのためになんぞやを調べた方がいいと言っているのだが
プロセスがどのプロセスが(読むか読まれるか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む
対象が共有メモリだからIPCとでも言っているようだけど?だからIPCとはなんのためになんぞやを調べた方がいいと言っているのだが
462デフォルトの名無しさん
2019/08/31(土) 13:58:45.11ID:wH7D17fo 共有メモリに関数(プロシージャー)をおいて
呼び出すのがI(インターネット)P(プロシージャ)C(コール)なわけだが?
呼び出すのがI(インターネット)P(プロシージャ)C(コール)なわけだが?
463デフォルトの名無しさん
2019/08/31(土) 13:59:35.20ID:MkewyPY7 ちょっと訂正
プロセスが(どのプロセスが読むか読まれんか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む
クリップボードってそのままのデータをやり取りする共有メモリだろ
でいいだろうに、なんでIPCのこだわっているのかさっぱりわからんな
プロセスが(どのプロセスが読むか読まれんか知らんけど)書く、どこぞのプロセスが誰が書いたのか知らんのを読む
クリップボードってそのままのデータをやり取りする共有メモリだろ
でいいだろうに、なんでIPCのこだわっているのかさっぱりわからんな
464デフォルトの名無しさん
2019/08/31(土) 13:59:51.95ID:gu7Dz/47 馬鹿二匹
馬鹿1「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」
馬鹿2「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」
馬鹿1「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」
馬鹿2「俺のほうが知ってる。お前調べてこい。そして俺に教えろ。」
465デフォルトの名無しさん
2019/08/31(土) 14:00:12.26ID:LtUqD47M お大事に
466デフォルトの名無しさん
2019/08/31(土) 14:02:37.03ID:ITKcc2Rb 割り込んで良い?
Bourne ShellとPOSIXシェルの違いを教えて下さい。
Bourne ShellとPOSIXシェルの違いを教えて下さい。
467デフォルトの名無しさん
2019/08/31(土) 14:57:30.64ID:Zp9ErCWA うーーんメーカー規格と標準規格で中身はおんなじとか
468デフォルトの名無しさん
2019/08/31(土) 15:05:45.40ID:0iGUnrw4 まーーーた始まった。
しかも今度はシェルの話題ですらないw
しかも今度はシェルの話題ですらないw
469デフォルトの名無しさん
2019/08/31(土) 15:11:29.97ID:0iGUnrw4 >>466
知らんけど
いわゆるBourneシェルはUnix V7あたりの「古き良き」シェルを指す?
でPOSIXはそのBシェルと前後して登場していた種々のシェルの微妙な非互換性を埋めるべく
Unix V7が全盛だった頃よりもっと後になって登場した「実装のない」シェル?
だからPOSIXシェルというのは正確にはPOSIX準拠シェルで
POSIX準拠シェルにはBシェルで使えない機能もある。具体的には set -o <機能の長い名称> とかかな?。
Bシェルが動いてる環境にPOSIXに準じた書き方をした筈の(つまり「現時点での」最大限の互換性がある筈の)
シェルを持っていっても,動かない場合がある。
POSIXはBシェルを大いに参考にはしたかも知れないが,Bシェルでも動くようにとか,
ましてBシェルと過去互換であるようになんてことは念頭に置いてない。
どうっすか先生。
知らんけど
いわゆるBourneシェルはUnix V7あたりの「古き良き」シェルを指す?
でPOSIXはそのBシェルと前後して登場していた種々のシェルの微妙な非互換性を埋めるべく
Unix V7が全盛だった頃よりもっと後になって登場した「実装のない」シェル?
だからPOSIXシェルというのは正確にはPOSIX準拠シェルで
POSIX準拠シェルにはBシェルで使えない機能もある。具体的には set -o <機能の長い名称> とかかな?。
Bシェルが動いてる環境にPOSIXに準じた書き方をした筈の(つまり「現時点での」最大限の互換性がある筈の)
シェルを持っていっても,動かない場合がある。
POSIXはBシェルを大いに参考にはしたかも知れないが,Bシェルでも動くようにとか,
ましてBシェルと過去互換であるようになんてことは念頭に置いてない。
どうっすか先生。
470デフォルトの名無しさん
2019/08/31(土) 15:16:19.89ID:a1oQmbic471デフォルトの名無しさん
2019/08/31(土) 15:30:41.04ID:4qIvp+ND >>470
POSIXの仕様書は読んだの?
POSIXの仕様書は読んだの?
472デフォルトの名無しさん
2019/08/31(土) 15:57:20.87ID:0iGUnrw4473デフォルトの名無しさん
2019/08/31(土) 16:03:38.88ID:3i1dPJsj Bourne Shellの仕様がないと比べようがないんだが?
474デフォルトの名無しさん
2019/08/31(土) 16:40:24.77ID:0iGUnrw4 「ないんだが?」←草
475デフォルトの名無しさん
2019/08/31(土) 16:50:51.67ID:4qIvp+ND476デフォルトの名無しさん
2019/08/31(土) 17:01:32.42ID:3i1dPJsj やっぱりだれもBourne Shellの仕様を知らないのかな?
477デフォルトの名無しさん
2019/08/31(土) 18:16:09.72ID:0iGUnrw4 だって「いつの」「どのOSに搭載された」「どんなベンダーが配布していた」Bシェルか一切指定されてないからね。
候補は幾つかあるものの出しようがない。
候補は幾つかあるものの出しようがない。
478デフォルトの名無しさん
2019/08/31(土) 18:19:00.41ID:0iGUnrw4 まさかと思うがBourne Shellが絶対不可侵,永久不滅の存在だなんて思ってないよな。
円周率じゃないんだから,単に「Bourne Shellの仕様」と言っただけで特定できる訳がない。
「Windows XPの仕様」←これがどれだけ曖昧な言明か,ちょっとでも真面目に
プログラミングとその文書化に取り組んだなら分かる筈。
円周率じゃないんだから,単に「Bourne Shellの仕様」と言っただけで特定できる訳がない。
「Windows XPの仕様」←これがどれだけ曖昧な言明か,ちょっとでも真面目に
プログラミングとその文書化に取り組んだなら分かる筈。
479デフォルトの名無しさん
2019/08/31(土) 18:20:26.43ID:0iGUnrw4 「Solaris 10の仕様」「Unix V7の仕様」←「Windowsのことなんてシラネーシ」みたいな反論を先に封じておくために
Windowsでない例を挙げておこう。
Windowsでない例を挙げておこう。
480デフォルトの名無しさん
2019/09/01(日) 00:08:11.60ID:1i1y7fC5 POSIXって右と左で中身がガバガバだから作られた最低限の共通仕様じゃないのか
無人島じゃ家電は役立たずでもアーミーナイフならどこでも使える的な
無人島じゃ家電は役立たずでもアーミーナイフならどこでも使える的な
481デフォルトの名無しさん
2019/09/01(日) 00:12:22.70ID:7+2OKNJu482デフォルトの名無しさん
2019/09/01(日) 00:15:35.40ID:7+2OKNJu >>480
POSIX準拠シェルの説明としては間違ってないが、
Bourne Shellとの比較であれば、POSIX準拠シェルの方が機能が多い
POSIX準拠シェルを「最低限の共通仕様」というのなら
Bourne Shellは最低限の仕様すら満たしてない使えない実装
POSIX準拠シェルの説明としては間違ってないが、
Bourne Shellとの比較であれば、POSIX準拠シェルの方が機能が多い
POSIX準拠シェルを「最低限の共通仕様」というのなら
Bourne Shellは最低限の仕様すら満たしてない使えない実装
483デフォルトの名無しさん
2019/09/01(日) 00:36:05.17ID:tx4fDw07 最低限の共通仕様と言ってるだろ、最低限の仕様じゃないよ
484デフォルトの名無しさん
2019/09/01(日) 00:37:19.00ID:5y1tL0M+485デフォルトの名無しさん
2019/09/01(日) 01:30:55.26ID:7+2OKNJu486デフォルトの名無しさん
2019/09/01(日) 02:19:47.47ID:tx4fDw07 Bourne ShellをベースにBourne Shellの機能を満たすように作るだろ、最低限でも
Bourne Shellの機能に飽き足らず拡張した部分の最低限の共通仕様だろ
最低限の仕様といえばBourne Shellの仕様だろ
Bourne Shellの機能に飽き足らず拡張した部分の最低限の共通仕様だろ
最低限の仕様といえばBourne Shellの仕様だろ
487デフォルトの名無しさん
2019/09/01(日) 02:27:49.82ID:V0W1RnmC Bourne ShellはPOSIX準拠じゃないから「最低限の共通仕様」を満たしてないんだってば
488デフォルトの名無しさん
2019/09/01(日) 02:31:19.82ID:tx4fDw07 POSIXが出る前POSIXを作るときの話だよ。Bourne ShellはPOSIX準拠じゃないってズレすぎ
Bourne Shellに機能拡張した部分の最低限の共通仕様だろって言ってるだろに
そもそもだな、つっこみどころが違う、「(右と左で中身がガバガバだから作られた)共通仕様」なのか?と思うけどw
Bourne Shellに機能拡張した部分の最低限の共通仕様だろって言ってるだろに
そもそもだな、つっこみどころが違う、「(右と左で中身がガバガバだから作られた)共通仕様」なのか?と思うけどw
489デフォルトの名無しさん
2019/09/01(日) 02:51:26.82ID:V0W1RnmC 「最低限の共通仕様」ってPOSIXのことじゃないの?
490デフォルトの名無しさん
2019/09/01(日) 03:07:24.67ID:tx4fDw07 Bourne Shellに機能拡張した部分の最低限の共通仕様=POSIX
「Bourne Shellに」「機能拡張した部分の」「最低限の共通仕様」だって言ってるだろに
Bourne Shellありき
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
Bourne Shell + b + c = POSIX
という意味だろう>>480のいう最低限の共通仕様は
「Bourne Shellに」「機能拡張した部分の」「最低限の共通仕様」だって言ってるだろに
Bourne Shellありき
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
Bourne Shell + b + c = POSIX
という意味だろう>>480のいう最低限の共通仕様は
491デフォルトの名無しさん
2019/09/01(日) 03:21:19.69ID:V0W1RnmC POSIXはkshをベースに作った仕様だけどね
492デフォルトの名無しさん
2019/09/01(日) 03:22:16.21ID:tx4fDw07 >>487なんて変なこと言い出さずに、それを言えよw
493デフォルトの名無しさん
2019/09/01(日) 03:28:52.19ID:V0W1RnmC だからBourne ShellはPOSIX準拠じゃないよね
でいいんでしょ
でいいんでしょ
494デフォルトの名無しさん
2019/09/01(日) 03:31:36.55ID:tx4fDw07 なにをそんなに食い下がっているのか意味わからん。なんの意味があるのそれに?
(そんなこと言い出すのはアホか?としか思えんぞw、常識的にPOSIXなんて存在する前のにPOSIX準拠もなにもないだろう)
(そんなこと言い出すのはアホか?としか思えんぞw、常識的にPOSIXなんて存在する前のにPOSIX準拠もなにもないだろう)
495デフォルトの名無しさん
2019/09/01(日) 03:33:35.57ID:V0W1RnmC なんでPOSIXが存在する前の話になってるのか分からんけどねw
496デフォルトの名無しさん
2019/09/01(日) 03:35:57.77ID:tx4fDw07 「POSIXって」「右と左で中身がガバガバ」「だから」「[作られた]」
って書いてあるだろう
わざとなのかわざとじゃないのかわからんが、人のレスを読む努力はした方がいいぞ
そうしたら変なこと言い出さずに変なこと言ったことを誤魔化すような醜態はさらさないだろうw
って書いてあるだろう
わざとなのかわざとじゃないのかわからんが、人のレスを読む努力はした方がいいぞ
そうしたら変なこと言い出さずに変なこと言ったことを誤魔化すような醜態はさらさないだろうw
497デフォルトの名無しさん
2019/09/01(日) 03:39:37.50ID:V0W1RnmC >>490で言ったこと訂正しとけよw
498デフォルトの名無しさん
2019/09/01(日) 03:40:28.13ID:tx4fDw07 そのレスは読めないなw
俺のレスが読めなくてのとしか思えん
俺のレスが読めなくてのとしか思えん
499デフォルトの名無しさん
2019/09/01(日) 04:22:29.76ID:5y1tL0M+ ごめんなさいって言えば良いのになんで突っ張るかねぇ
500デフォルトの名無しさん
2019/09/01(日) 04:34:43.52ID:YaEsaVCE >>488
> Bourne Shellに機能拡張した部分の最低限の共通仕様
それ日本語になってないだろ?w
自分が言った言葉を無理やり辻褄が合う(?)ように改変したから
そういう意味不明な言葉になってるんだぞ
> Bourne Shellに機能拡張した部分の最低限の共通仕様
それ日本語になってないだろ?w
自分が言った言葉を無理やり辻褄が合う(?)ように改変したから
そういう意味不明な言葉になってるんだぞ
501デフォルトの名無しさん
2019/09/01(日) 04:36:27.29ID:YaEsaVCE502デフォルトの名無しさん
2019/09/01(日) 04:40:50.68ID:tx4fDw07 ん?
Bourne Shellに機能拡張した部分の最低限の共通仕様
Bourne Shellありき
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
Bourne Shell + b + c = POSIX
という意味だろう>>480のいう最低限の共通仕様は
どう、日本語になってないの?
Bourne Shellに機能拡張した部分の最低限の共通仕様
Bourne Shellありき
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
Bourne Shell + b + c = POSIX
という意味だろう>>480のいう最低限の共通仕様は
どう、日本語になってないの?
503デフォルトの名無しさん
2019/09/01(日) 04:41:03.98ID:YaEsaVCE >>477
> 候補は幾つかあるものの出しようがない。
候補が有るなら出せるのでは?w
後方がいくつか有るというのなら、その候補を言ってみなよ。
その中で最後に作られたもの(or 一番機能が多いと思われるもの)に
すればいいだけだからさ
> 候補は幾つかあるものの出しようがない。
候補が有るなら出せるのでは?w
後方がいくつか有るというのなら、その候補を言ってみなよ。
その中で最後に作られたもの(or 一番機能が多いと思われるもの)に
すればいいだけだからさ
504デフォルトの名無しさん
2019/09/01(日) 04:42:29.94ID:YaEsaVCE505デフォルトの名無しさん
2019/09/01(日) 04:43:18.76ID:tx4fDw07 >>502 に書いてあるけど?
506デフォルトの名無しさん
2019/09/01(日) 04:44:02.38ID:YaEsaVCE507デフォルトの名無しさん
2019/09/01(日) 04:44:51.13ID:tx4fDw07 b と c だよ
508デフォルトの名無しさん
2019/09/01(日) 04:48:27.13ID:YaEsaVCE b と c があって、その部分の
最低限の共通仕様がPOSIXなわけね
最低限の共通仕様がPOSIXなわけね
509デフォルトの名無しさん
2019/09/01(日) 04:49:02.25ID:tx4fDw07 そう最初から言ってる、書いてるんだけどなあww
510デフォルトの名無しさん
2019/09/01(日) 04:49:14.02ID:YaEsaVCE つまり、Bourne ShellはPOSIXには含まれないと
511デフォルトの名無しさん
2019/09/01(日) 04:50:02.57ID:tx4fDw07 ああ、違う、違う読み方してんのか??
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
なんぞの共通の最低限の共通仕様だからね
どこのぞのバージョンが、それに a b c etc... な機能を追加
どこのぞのバージョンが、それに b c d etc... な機能を追加
なんぞの共通の最低限の共通仕様だからね
512デフォルトの名無しさん
2019/09/01(日) 04:50:42.66ID:tx4fDw07513デフォルトの名無しさん
2019/09/01(日) 04:51:10.99ID:YaEsaVCE > なんぞの共通の最低限の共通仕様だからね
お前「部分」って言ったよね?
Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様
お前「部分」って言ったよね?
Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様
514デフォルトの名無しさん
2019/09/01(日) 04:52:24.67ID:tx4fDw07 それに a b c etc... な機能を追加
a b c etc... なんぞは部分だわな
a b c etc... なんぞは部分だわな
515デフォルトの名無しさん
2019/09/01(日) 04:52:27.35ID:YaEsaVCE > b と c だよ
言質とりましたーw
Bourne Shellに機能拡張した部分(b+c)
(b+c)の最低限の共通仕様がPOSIXだって言いましたー
言質とりましたーw
Bourne Shellに機能拡張した部分(b+c)
(b+c)の最低限の共通仕様がPOSIXだって言いましたー
516デフォルトの名無しさん
2019/09/01(日) 04:53:50.39ID:tx4fDw07 なにを喜んでいるのか意味わからんな。どこになんの言質??
517デフォルトの名無しさん
2019/09/01(日) 04:54:23.93ID:YaEsaVCE >>515をみろ
518デフォルトの名無しさん
2019/09/01(日) 04:55:11.18ID:tx4fDw07 だから、なんの言質かと聞いているんだが
519デフォルトの名無しさん
2019/09/01(日) 04:56:08.38ID:YaEsaVCE Bourne Shellに機能拡張した「部分」が(b+c)だって言質とりましたーw
520デフォルトの名無しさん
2019/09/01(日) 04:57:06.97ID:YaEsaVCE /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
521デフォルトの名無しさん
2019/09/01(日) 04:59:06.93ID:tx4fDw07 まさか、POSIXとは (b+c)のことだって言ったと言っているわけじゃないだろうね?
Bourne Shell + b + c = POSIX
って書いてあるだろう。POSIXとはこれのことだと言っているのだろうとは俺は言っているけど。それも俺の主張ではなくて>>840の言いたいことはだがなw
Bourne Shell + b + c = POSIX
って書いてあるだろう。POSIXとはこれのことだと言っているのだろうとは俺は言っているけど。それも俺の主張ではなくて>>840の言いたいことはだがなw
522デフォルトの名無しさん
2019/09/01(日) 05:00:27.58ID:JXg8T9pY キチガイ VS キチガイ
ファイ!
ファイ!
523デフォルトの名無しさん
2019/09/01(日) 05:00:57.18ID:tx4fDw07524デフォルトの名無しさん
2019/09/01(日) 05:02:27.14ID:YaEsaVCE525デフォルトの名無しさん
2019/09/01(日) 05:03:43.36ID:JXg8T9pY526デフォルトの名無しさん
2019/09/01(日) 05:04:01.75ID:tx4fDw07 >>524
それでいいよ(?)で?
それでいいよ(?)で?
527デフォルトの名無しさん
2019/09/01(日) 05:05:08.99ID:YaEsaVCE528デフォルトの名無しさん
2019/09/01(日) 05:05:14.28ID:tx4fDw07 >>525
すぐに喧嘩とか思っちゃうのねw
すぐに喧嘩とか思っちゃうのねw
529デフォルトの名無しさん
2019/09/01(日) 05:05:42.43ID:tx4fDw07 >>527
だから、どうなってないのかと聞いているんだが?
だから、どうなってないのかと聞いているんだが?
530デフォルトの名無しさん
2019/09/01(日) 05:11:25.25ID:YaEsaVCE >>529
Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様 がPOSIX
↑日本語になっていない
↓正しい日本語
Bourne Shellを機能拡張したシェルの共通仕様がPOSIX
まあ↑は日本語としては正しいが、言ってることは間違いだけどな
正解
Bourne Shellを機能拡張したkshのサブセットがPOSIX
Bourne Shellに機能拡張した部分(b+c)の最低限の共通仕様 がPOSIX
↑日本語になっていない
↓正しい日本語
Bourne Shellを機能拡張したシェルの共通仕様がPOSIX
まあ↑は日本語としては正しいが、言ってることは間違いだけどな
正解
Bourne Shellを機能拡張したkshのサブセットがPOSIX
531デフォルトの名無しさん
2019/09/01(日) 05:17:42.82ID:tx4fDw07 その俺のからはその添削後の意味は取れないのね?ふーん
まあ、それならすまんかった。(なんかそうとは思えんけどw)
まあ、それならすまんかった。(なんかそうとは思えんけどw)
532デフォルトの名無しさん
2019/09/01(日) 05:18:51.37ID:YaEsaVCE まさにこれw
499 名前:デフォルトの名無しさん[sage] 投稿日:2019/09/01(日) 04:22:29.76 ID:5y1tL0M+ [2/2]
ごめんなさいって言えば良いのになんで突っ張るかねぇ
499 名前:デフォルトの名無しさん[sage] 投稿日:2019/09/01(日) 04:22:29.76 ID:5y1tL0M+ [2/2]
ごめんなさいって言えば良いのになんで突っ張るかねぇ
533デフォルトの名無しさん
2019/09/01(日) 05:19:56.80ID:tx4fDw07 いや、言ってるけど
そこまで読めないのか?というのは拭えないというだけで
そこまで読めないのか?というのは拭えないというだけで
534デフォルトの名無しさん
2019/09/01(日) 05:26:24.29ID:YaEsaVCE で、話を戻そうか?
>>477
> 候補は幾つかあるものの出しようがない。
候補が有るなら出せるのでは?w
後方がいくつか有るというのなら、その候補を言ってみなよ。
その中で最後に作られたもの(or 一番機能が多いと思われるもの)に
すればいいだけだからさ
>>477
> 候補は幾つかあるものの出しようがない。
候補が有るなら出せるのでは?w
後方がいくつか有るというのなら、その候補を言ってみなよ。
その中で最後に作られたもの(or 一番機能が多いと思われるもの)に
すればいいだけだからさ
535デフォルトの名無しさん
2019/09/01(日) 05:31:12.93ID:YaEsaVCE 忘れているかもしれないけど、
Bourne ShellとPOSIXシェルの機能の違いはなにか?
という話です。
Bourne ShellとPOSIXシェルの機能の違いはなにか?
という話です。
536デフォルトの名無しさん
2019/09/01(日) 13:23:16.11ID:fPTBNnye やっぱりどこでも動くシェルスクリプトなんて幻想なんだねw
537デフォルトの名無しさん
2019/09/01(日) 13:28:25.22ID:hBg0Iyqv まーた始まった
538デフォルトの名無しさん
2019/09/01(日) 13:38:39.47ID:sO2LPoJE 昨日神保町の本屋でこんな本みつけた。ペラペラの薄い本で妙に安い(300円+税)。内容は初心者向け。
シェルスクリプト入門の入門
http://ankokudan.org/d/d.htm?detail230-detailread-m.html
シェルスクリプト入門の入門
http://ankokudan.org/d/d.htm?detail230-detailread-m.html
539デフォルトの名無しさん
2019/09/01(日) 14:14:10.44ID:IrmDadb6 どうでもよさそうなものださなくていいよ
540デフォルトの名無しさん
2019/09/01(日) 18:13:48.55ID:Zrnas7uJ UNIXの分裂とかも、こんな不毛な言い争いから始まったんだよなw
541デフォルトの名無しさん
2019/09/01(日) 18:27:20.62ID:5y1tL0M+ AT&Tの解体が原因じゃないの?
542デフォルトの名無しさん
2019/09/01(日) 19:11:34.33ID:ugxLNVG7 う、うん…
543デフォルトの名無しさん
2019/09/01(日) 23:36:59.29ID:V0W1RnmC 自分の間違いを素直に認められないやつは厄介だなw
544デフォルトの名無しさん
2019/09/02(月) 02:57:56.84ID:qpVgNjbx キチガイ
545デフォルトの名無しさん
2019/09/02(月) 05:42:07.68ID:moJkj9e4 こんな場末の記事でしか偉ぶれないなんて,かわいそう。
546デフォルトの名無しさん
2019/09/02(月) 06:47:31.22ID:mejwNGsW こんな場末のスレで煽りしか入れられないなんて,かわいそう。
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
647デフォルトの名無しさん
2019/09/20(金) 15:46:33.91ID:pw3H64dJ ふむ。ということは今であればほぼ問題ないという訳か。
thx
thx
648デフォルトの名無しさん
2019/09/20(金) 18:40:57.99ID:YblgUZDU >>644
基本的にメインフレームってカテゴリのコンピュータはCPUも自社設計だったので
8bit単位じゃなく自分たちの使いやすいbit数だった
ザイログとかモトローラのCPUを使っていると基本的に8bitの整数倍になる
基本的にメインフレームってカテゴリのコンピュータはCPUも自社設計だったので
8bit単位じゃなく自分たちの使いやすいbit数だった
ザイログとかモトローラのCPUを使っていると基本的に8bitの整数倍になる
649デフォルトの名無しさん
2019/09/22(日) 22:42:51.90ID:UP8ZY9Jm symlnkのフォルダからファイルをmvすると実体パスの方で移動するけどmvの仕様?
650デフォルトの名無しさん
2019/09/22(日) 22:58:25.61ID:wuCdbk0L 移動なら実体を移動しなきゃ移動しないだろう、ファイルシステム的に
651デフォルトの名無しさん
2019/09/22(日) 23:05:40.23ID:QKufl6gy 例えば/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にいるという情報は伝わらない。
cd /x/y; mv c ..したときにcが/x/cじゃなくて/a/cになるという話なら仕様。
実際はcd /x/yの時点でカーネル的には既に/a/bに移っている。
pwdして/x/yと表示されたり、プロンプトに/x/yと出たりすることがあるのは、シェルがそう見せているだけ。
外部コマンドを呼んだ時点で/x/yにいるという情報は伝わらない。
652デフォルトの名無しさん
2019/09/22(日) 23:22:54.08ID:dHMqf7rP シェルによっては今いるディレクトリをシンボリックリンクのままPWD環境変数に出力するから、外部コマンドでも>>651の場合に/a/bではなく/x/yにいると分かることもある
だからmvでもやろうと思えば環境変数によって動作をかえて/x/cに移すこともー応可能ではある
ただ普通はそういう危なっかしい動きはしない
だからmvでもやろうと思えば環境変数によって動作をかえて/x/cに移すこともー応可能ではある
ただ普通はそういう危なっかしい動きはしない
653デフォルトの名無しさん
2019/09/23(月) 00:58:42.07ID:XnqhgXWR なるほど
~/dir/foo.txtがあって、dirのリンクを~/Desktop/dir_linkに作ったんだ
んでdir_linkからmv foo.txt ../したらDesktopになくてあれってね
シンボリックリンクはあくまで別名だって念頭に置かないといつかやらかしそうだなぁ
~/dir/foo.txtがあって、dirのリンクを~/Desktop/dir_linkに作ったんだ
んでdir_linkからmv foo.txt ../したらDesktopになくてあれってね
シンボリックリンクはあくまで別名だって念頭に置かないといつかやらかしそうだなぁ
654デフォルトの名無しさん
2019/09/23(月) 13:44:18.78ID:uT43KuRv シンボリックリンク自体はカーネルっていうかファイルシステムの機能であって
シェルの機能じゃないよね?
シンボリックリンクされたディレクトリへの移動やその表示が、シェルの機能?
シェルの機能じゃないよね?
シンボリックリンクされたディレクトリへの移動やその表示が、シェルの機能?
655デフォルトの名無しさん
2019/09/23(月) 14:55:36.41ID:16gV8N0U シンボリックリンクはただのファイルで、APIが機能を提供してるだけだろう
ハードリンクはファイルシステムの機能だろうが
ハードリンクはファイルシステムの機能だろうが
656デフォルトの名無しさん
2019/09/23(月) 15:20:14.51ID:0wgm+uqt シンボリックリンクはPOSIXで決まっているが、
シェルスクリプトとは関係ない。
シェルとも関係ない。すれ違いだ。
シェルスクリプトの話をしろ。
シェルスクリプトとは関係ない。
シェルとも関係ない。すれ違いだ。
シェルスクリプトの話をしろ。
657デフォルトの名無しさん
2019/09/23(月) 15:43:16.78ID:PpvL3bdr シンボリックリンクもハードリンクもファイルシステムの機能だ
658デフォルトの名無しさん
2019/09/23(月) 15:44:56.02ID:mZE+d06B ドヤァ
659デフォルトの名無しさん
2019/09/23(月) 16:01:07.98ID:16gV8N0U >>657
どこまでをファイルシステムかと言うのかだが、論理矛盾とかリンク切れとかあってもなんも関係ないのだから低レベル=どのファイルシステムでフォーマットする?というファイルシステムのファイルシステムではないな
そのレベルではファイルとフラグを提供しているにすぎない
APIも含めたOSがアプリケーションに対しての提供するファイルシステムといえばファイルシステムだろうが
どこまでをファイルシステムかと言うのかだが、論理矛盾とかリンク切れとかあってもなんも関係ないのだから低レベル=どのファイルシステムでフォーマットする?というファイルシステムのファイルシステムではないな
そのレベルではファイルとフラグを提供しているにすぎない
APIも含めたOSがアプリケーションに対しての提供するファイルシステムといえばファイルシステムだろうが
660デフォルトの名無しさん
2019/09/23(月) 16:41:43.41ID:aoth6Tve まぁ、いずれにしても、ここではスレ違い
661デフォルトの名無しさん
2019/09/23(月) 16:58:42.91ID:COQ8/G13 シンボリックリンクやハードリンクはOSの機能
ファイルシステムはそれを実装するだけ
(FATのように実装してないものもある)
ファイルシステムはそれを実装するだけ
(FATのように実装してないものもある)
662デフォルトの名無しさん
2019/09/23(月) 17:01:20.42ID:PpvL3bdr アホばっかw
663デフォルトの名無しさん
2019/09/23(月) 17:09:58.15ID:fWeAQpZu 自戒か
664デフォルトの名無しさん
2019/09/23(月) 17:22:55.59ID:qNyZUwSM ファイルシステムはOSの提供する1つの機能だろ
665デフォルトの名無しさん
2019/09/23(月) 20:09:09.12ID:uT43KuRv いつからカーネルがOSに掏り替わった?
666デフォルトの名無しさん
2019/09/25(水) 16:36:07.25ID:vuS5tsH7 カーネルってファイルシステム含まないでしょうが
667デフォルトの名無しさん
2019/09/25(水) 17:26:48.60ID:Fy/ppuPa 子供がまだ食ってる途中でしょうが
668デフォルトの名無しさん
2019/09/29(日) 15:56:27.36ID:kt1IDkk5 誠意って何かね
669デフォルトの名無しさん
2019/09/29(日) 17:07:22.81ID:G1Omq4Sq 金
670デフォルトの名無しさん
2019/09/29(日) 19:09:52.55ID:VaR9nylT 女だったらアレかもしれんが
671デフォルトの名無しさん
2019/09/29(日) 19:22:34.45ID:CY5JaLwa 俺が定期的にお題を出してやらないとすぐクソスレ化するなw
672デフォルトの名無しさん
2019/09/29(日) 19:31:49.84ID:cn7qdGIP Oh, I like Japan.
Japanese are crazy. Ha ha ha.
Japanese are pigs, pigs, you know.
Moneys and they have small cocks you know short legs yellow monkeys.
Do you understand?
Japanese are crazy. Ha ha ha.
Japanese are pigs, pigs, you know.
Moneys and they have small cocks you know short legs yellow monkeys.
Do you understand?
673デフォルトの名無しさん
2019/09/29(日) 19:34:18.39ID:RIFVILY+ POSIXの話するから荒れて盛り上がるから誰かしてよ
674デフォルトの名無しさん
2019/09/29(日) 19:34:36.19ID:RIFVILY+ POSIXの話すると荒れて盛り上がるから誰かしてよ
675デフォルトの名無しさん
2019/09/29(日) 20:34:15.29ID:1ct4yMlj POSIX準拠で固定小数点ライブラリほしいな
小数使うことは稀だけど、たまに無いとめんどくさい
exprは外部コマンドで遅いので却下w
小数使うことは稀だけど、たまに無いとめんどくさい
exprは外部コマンドで遅いので却下w
676デフォルトの名無しさん
2019/09/29(日) 20:53:22.53ID:UgGWrkoZ bashって便利だけど計算部分だけマジでダサいな
1+1が
$((1+1))ってなんなんだよ
1+1が
$((1+1))ってなんなんだよ
677デフォルトの名無しさん
2019/09/29(日) 21:19:57.63ID:1ct4yMlj どの言語にも言えることだけど、
ダサい部分ってのは互換性のためだよ
シェルスクリプトは外部コマンドを関数として呼び出せて、
そして外部コマンドに使える文字は、ファイルに使える文字と同じ
だから例えば@とか%とかいう文字でさえ、コマンド名として使える
だから、安易に記号を追加するわけにもいかないし予約語も増やせない。
$に関してはシェルスクリプト当初から特殊記号だったから
新たに特殊記号や予約語を増やすのではなく$を拡張するという方法を採用したのだろう
互換性は一番大事だからね
ダサい部分ってのは互換性のためだよ
シェルスクリプトは外部コマンドを関数として呼び出せて、
そして外部コマンドに使える文字は、ファイルに使える文字と同じ
だから例えば@とか%とかいう文字でさえ、コマンド名として使える
だから、安易に記号を追加するわけにもいかないし予約語も増やせない。
$に関してはシェルスクリプト当初から特殊記号だったから
新たに特殊記号や予約語を増やすのではなく$を拡張するという方法を採用したのだろう
互換性は一番大事だからね
678デフォルトの名無しさん
2019/09/29(日) 21:21:56.71ID:1ct4yMlj 補足
例えば「1 + 1」は、"1"コマンドを、+と1という引数で呼び出すという意味になるし
「1+1」だと"1+1"コマンドになる。
選択肢が限られるんだよね
例えば「1 + 1」は、"1"コマンドを、+と1という引数で呼び出すという意味になるし
「1+1」だと"1+1"コマンドになる。
選択肢が限られるんだよね
679デフォルトの名無しさん
2019/09/30(月) 06:57:25.74ID:Ceph+2oU $ awk 'BEGIN {print 0.1+0.2}'
0.3
bcより使いやすい悲しみ
0.3
bcより使いやすい悲しみ
680デフォルトの名無しさん
2019/09/30(月) 13:47:50.63ID:bgqbOy9v POSIXの仕様書,
算術展開での(浮動)小数点演算は今度の2020年度改訂で一部解禁されるらしい。
ちなみに時を同じくして$'\n'←みたいな書式も解禁。
やったぜ。
算術展開での(浮動)小数点演算は今度の2020年度改訂で一部解禁されるらしい。
ちなみに時を同じくして$'\n'←みたいな書式も解禁。
やったぜ。
681デフォルトの名無しさん
2019/09/30(月) 14:14:05.05ID:gJLA2fQe やったぜ。
682デフォルトの名無しさん
2019/09/30(月) 14:57:01.11ID:seE3nGDx 石器時代かよワロタw
683デフォルトの名無しさん
2019/09/30(月) 14:59:09.67ID:1VQTT5dv 生理がこないんですけど
どうしたらいいですか?
どうしたらいいですか?
684デフォルトの名無しさん
2019/09/30(月) 15:14:42.58ID:g4qimp0d 俺も生理来たことないわー
685デフォルトの名無しさん
2019/09/30(月) 15:24:33.48ID:g4qimp0d >>680
どこ情報ですか?
どこ情報ですか?
686デフォルトの名無しさん
2019/09/30(月) 17:46:55.62ID:zGRcNdYK もしもし、先生!もしもし!
だけどもねー、実はあのー、子供つくらないようにしてるんですよね、わたくしも本当に辛くてですね、子供には遺伝しないでしょうか?
だけどもねー、実はあのー、子供つくらないようにしてるんですよね、わたくしも本当に辛くてですね、子供には遺伝しないでしょうか?
687デフォルトの名無しさん
2019/09/30(月) 19:45:29.40ID:bgqbOy9v688デフォルトの名無しさん
2019/09/30(月) 20:35:29.76ID:sHSicWZI >>687
いや、小数の話
いや、小数の話
689デフォルトの名無しさん
2019/09/30(月) 21:58:43.29ID:M1BD3UNk しょうっすか…
690デフォルトの名無しさん
2019/09/30(月) 23:03:44.06ID:qRuhgEzP 無理にシェルスクリプトだけで小数対応しなくても、
perl -e "print 0.2*0.3"
とか、いろいろやりようはあるからあまり必要性を感じない。
perl -e "print 0.2*0.3"
とか、いろいろやりようはあるからあまり必要性を感じない。
691デフォルトの名無しさん
2019/09/30(月) 23:20:20.33ID:nI7iDoAi >>690
大量に計算をするとプロセス呼び出しになるから遅いんだよ
$ time ksh -c 'for i in $(seq 1000); do n=$(echo "0.2*0.3" | bc -l); done'
real 0m1.921s
user 0m1.762s
sys 0m0.715s
$ time ksh -c 'for i in $(seq 1000); do n=$((0.2*0.3)); done'
real 0m0.009s
user 0m0.009s
sys 0m0.000s
たったの1000回でここまで差が出るからね
大量に計算をするとプロセス呼び出しになるから遅いんだよ
$ time ksh -c 'for i in $(seq 1000); do n=$(echo "0.2*0.3" | bc -l); done'
real 0m1.921s
user 0m1.762s
sys 0m0.715s
$ time ksh -c 'for i in $(seq 1000); do n=$((0.2*0.3)); done'
real 0m0.009s
user 0m0.009s
sys 0m0.000s
たったの1000回でここまで差が出るからね
692デフォルトの名無しさん
2019/09/30(月) 23:28:35.91ID:qRuhgEzP 意図と違うと思うが、
time perl -e '$j=0; for($i=0;$i<1000;$i+=1) { $j+=0.2*0.3; }; print $j'
とか、別にシェルスクリプトだけに頼らんでもなんとかなってしまうというか・・・・
time perl -e '$j=0; for($i=0;$i<1000;$i+=1) { $j+=0.2*0.3; }; print $j'
とか、別にシェルスクリプトだけに頼らんでもなんとかなってしまうというか・・・・
693デフォルトの名無しさん
2019/09/30(月) 23:29:54.18ID:nI7iDoAi だから出来るできないの話はして無くて
遅いって話をしてる
遅いって話をしてる
694デフォルトの名無しさん
2019/09/30(月) 23:35:15.29ID:1VQTT5dv >>692
これで事足りるな
これで事足りるな
695デフォルトの名無しさん
2019/09/30(月) 23:58:52.54ID:nI7iDoAi perlは入ってない環境も有るのでその点でも駄目だしね
696デフォルトの名無しさん
2019/10/01(火) 00:02:33.23ID:cNB/gbgI >>679
これで事足りるな
これで事足りるな
697デフォルトの名無しさん
2019/10/01(火) 00:27:03.86ID:rxcb8vGn 必須すぎやろw
698デフォルトの名無しさん
2019/10/01(火) 01:47:40.69ID:SPlRKvH8 なになに縛りが好きなマゾなんだろうw
699デフォルトの名無しさん
2019/10/01(火) 02:00:19.69ID:rxcb8vGn そんな事する必要がないなら縛りって言ってもいいけど、
perlが入ってない環境は実際に存在するからね
perlが入ってない環境は実際に存在するからね
700デフォルトの名無しさん
2019/10/01(火) 02:09:56.58ID:ESup7bfu awkも使えない環境で何やるんだよw
701デフォルトの名無しさん
2019/10/01(火) 02:09:58.85ID:PTA8MEY/702デフォルトの名無しさん
2019/10/01(火) 02:36:49.10ID:eGCx9XC9 >>700
awkはbusyboxに入ってるよw
awkはbusyboxに入ってるよw
703デフォルトの名無しさん
2019/10/01(火) 09:01:32.62ID:O2y9FdCY 「可搬性が高い」を「POSIX縛り」と取り違えてるおバカさんがいますね…
704デフォルトの名無しさん
2019/10/01(火) 09:11:30.09ID:ZA6pNaC0 POSIXで縛るだけではPOSIX未満のbusyboxで動かなかったりするからね
可搬性を高くするにはPOSIXで規定されたコマンドであっても
なるべく使わないほうが良い
可搬性を高くするにはPOSIXで規定されたコマンドであっても
なるべく使わないほうが良い
705デフォルトの名無しさん
2019/10/01(火) 10:51:02.41ID:CGhZJwfl どういうことなの…
706デフォルトの名無しさん
2019/10/01(火) 11:09:51.43ID:ZA6pNaC0 ここはシェルスクリプトのスレ
つまり可搬性とはシェルスクリプトの話をしてる。
シェルスクリプトではよく外部コマンドを呼び出す
しかし外部コマンドはOSによって違う。
特に基本的なコマンドは、各OSでバラバラに作っていたり
独自の修正を入れており複数の実装があり微妙に動きが異なっている。
例えば、LinuxのsedとMacのsedでは使える命令が違う。
POSIX準拠のコマンド(もちろんオプションなども含む)で規定されてるものだけを
使っていれば可搬性はそれなりにあるが、それでも完璧じゃない。
例えば組み込みで使われるbusyboxはPOSIX準拠コマンドのサブセットが実装されてる。
だから本気で可搬性を高くしようと思えばPOSIX縛りでも不十分。
POSIX準拠のコマンドが信じれない。という前提にたてば
思い切って外部コマンドすら呼び出さない、完全にシェルスクリプトだけで
実装するのがもっとも可搬性が高い。
もちろん限界は有るので実際には出来る限りシェルスクリプトで作って、
外部コマンドは必要最小限、必要に応じて互換性を吸収するようにラッパー関数を作る。
ということになる。
つまり可搬性とはシェルスクリプトの話をしてる。
シェルスクリプトではよく外部コマンドを呼び出す
しかし外部コマンドはOSによって違う。
特に基本的なコマンドは、各OSでバラバラに作っていたり
独自の修正を入れており複数の実装があり微妙に動きが異なっている。
例えば、LinuxのsedとMacのsedでは使える命令が違う。
POSIX準拠のコマンド(もちろんオプションなども含む)で規定されてるものだけを
使っていれば可搬性はそれなりにあるが、それでも完璧じゃない。
例えば組み込みで使われるbusyboxはPOSIX準拠コマンドのサブセットが実装されてる。
だから本気で可搬性を高くしようと思えばPOSIX縛りでも不十分。
POSIX準拠のコマンドが信じれない。という前提にたてば
思い切って外部コマンドすら呼び出さない、完全にシェルスクリプトだけで
実装するのがもっとも可搬性が高い。
もちろん限界は有るので実際には出来る限りシェルスクリプトで作って、
外部コマンドは必要最小限、必要に応じて互換性を吸収するようにラッパー関数を作る。
ということになる。
707デフォルトの名無しさん
2019/10/01(火) 15:50:14.87ID:P1455Lxu 可搬性に異常に拘っているのは一人か二人しかいないけどな
可搬性に拘ってないというレスにも可搬性を押し付ける
可搬性に拘ってないというレスにも可搬性を押し付ける
708デフォルトの名無しさん
2019/10/01(火) 16:28:55.36ID:9fvqkmcJ 認めろよ。
シェルスクリプトに可搬性などない。
どこでも動くシェルスクリプトなど幻想。
シェルスクリプトに可搬性などない。
どこでも動くシェルスクリプトなど幻想。
709デフォルトの名無しさん
2019/10/01(火) 16:40:08.47ID:8eIOCDAd hoge () {
echo "Hello"
}
for i in $(seq 1000); do
hoge
a=$(hoge)
done
myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな
簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな?
echo "Hello"
}
for i in $(seq 1000); do
hoge
a=$(hoge)
done
myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな
簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな?
710デフォルトの名無しさん
2019/10/01(火) 16:46:56.18ID:O2y9FdCY それBashでやってない?
試しにKshでやってみて。(俺環かもしれんから,速度比較は晒さない)
試しにKshでやってみて。(俺環かもしれんから,速度比較は晒さない)
711デフォルトの名無しさん
2019/10/01(火) 16:52:40.16ID:/6RuW8/Q perlが入ってない環境ってそれは入れる必要ないんだろ
一から構築していくならそれでいいけど
一から構築していくならそれでいいけど
712デフォルトの名無しさん
2019/10/01(火) 16:54:32.38ID:8eIOCDAd なるほど。ksh(だけが?)がなんか賢いかな。zsh他も差がある
713デフォルトの名無しさん
2019/10/01(火) 17:07:00.59ID:cNB/gbgI perlが無い環境があるからどうのこうの言うけど
kshが無い環境があるからは言わないんだなw
kshが無い環境があるからは言わないんだなw
714デフォルトの名無しさん
2019/10/01(火) 17:10:13.56ID:8eIOCDAd 違う人じゃね?同一人物だったらアレだけどw
715デフォルトの名無しさん
2019/10/01(火) 18:59:48.82ID:8eIOCDAd716デフォルトの名無しさん
2019/10/01(火) 19:16:54.12ID:fust4gpU >>709
forkだよ。$( ) の部分がサブシェルになってて
多くのシェルではサブシェル = 別プロセス生成で実装されてる。
そのおかげでサブシェルの中でcdを実行したり変数を使ったりしても
呼び出し元は汚染されたりしない
kshはサブシェルの実装が最適化されていて
全てではないが、サブシェルの部分を同一プロセスで実行する。
独自で状態の保存と復帰を実装してるのだろう。
https://codeday.me/jp/qa/20190810/1425430.html
kshは速いと言っちゃ速いんだが、その(複雑な?)仕組みのせいで
バグのもとになってたりする。ということを書いてあるページが
有ったんだがどこか忘れた。
forkだよ。$( ) の部分がサブシェルになってて
多くのシェルではサブシェル = 別プロセス生成で実装されてる。
そのおかげでサブシェルの中でcdを実行したり変数を使ったりしても
呼び出し元は汚染されたりしない
kshはサブシェルの実装が最適化されていて
全てではないが、サブシェルの部分を同一プロセスで実行する。
独自で状態の保存と復帰を実装してるのだろう。
https://codeday.me/jp/qa/20190810/1425430.html
kshは速いと言っちゃ速いんだが、その(複雑な?)仕組みのせいで
バグのもとになってたりする。ということを書いてあるページが
有ったんだがどこか忘れた。
717デフォルトの名無しさん
2019/10/01(火) 19:25:21.59ID:fust4gpU 遅い原因の本質は標準出力のキャプチャじゃないから
この二つでも違いがでる
hoge () {
:
}
for i in $(seq 1000); do
hoge
(hoge)
done
>>715
> kshでも差があるね。ループ数増やせば体感できるほどの差となるね
そうなんだよね。サブシェルのコストは以外と大きい。
だから変数に入れて使うことが目的とした関数は以下のように
グローバル変数を使って返したほうがずっと速いわけさ
hoge () {
RET=Hello
}
for i in $(seq 1000); do
hoge
a=$RET
done
この二つでも違いがでる
hoge () {
:
}
for i in $(seq 1000); do
hoge
(hoge)
done
>>715
> kshでも差があるね。ループ数増やせば体感できるほどの差となるね
そうなんだよね。サブシェルのコストは以外と大きい。
だから変数に入れて使うことが目的とした関数は以下のように
グローバル変数を使って返したほうがずっと速いわけさ
hoge () {
RET=Hello
}
for i in $(seq 1000); do
hoge
a=$RET
done
718デフォルトの名無しさん
2019/10/01(火) 19:26:55.18ID:8eIOCDAd >>716
内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ)
zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw
a=0
ls | while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど
とりあえず、どうしようもないそういうものということでいいのね。どうも
内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ)
zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw
a=0
ls | while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど
とりあえず、どうしようもないそういうものということでいいのね。どうも
719デフォルトの名無しさん
2019/10/01(火) 19:30:13.87ID:8eIOCDAd >>717
せっかくですが、ちょい本題とは違うかな。そりゃ () は...
なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという
まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど
どうも
せっかくですが、ちょい本題とは違うかな。そりゃ () は...
なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという
まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど
どうも
720デフォルトの名無しさん
2019/10/01(火) 19:37:54.80ID:fust4gpU >>719
> なんで内部関数なのにサブシェルになんのかねん、
考え方が違う。
コマンド置換$( ) は「サブシェルを使用して実行する」という"仕様"なんだよ
なんでサブシェルになるのか?ではなく仕様でサブシェルにすると決まってる。
ただし別プロセスにするとは決まっていない。だから子プロセスとかいう既存の
名前ではなく、新たにサブシェルという用語を作った。
サブシェルの仕様としては、「サブシェル内で行った変数などの変更は呼び出し元には伝わらない。」
などがあるが、それを実現してるなら別の別プロセスでなくてもよい。
だけど別プロセスにするほうが実装が簡単だから多くのシェルではサブシェル=別プロセスになってる。
> なんで内部関数なのにサブシェルになんのかねん、
考え方が違う。
コマンド置換$( ) は「サブシェルを使用して実行する」という"仕様"なんだよ
なんでサブシェルになるのか?ではなく仕様でサブシェルにすると決まってる。
ただし別プロセスにするとは決まっていない。だから子プロセスとかいう既存の
名前ではなく、新たにサブシェルという用語を作った。
サブシェルの仕様としては、「サブシェル内で行った変数などの変更は呼び出し元には伝わらない。」
などがあるが、それを実現してるなら別の別プロセスでなくてもよい。
だけど別プロセスにするほうが実装が簡単だから多くのシェルではサブシェル=別プロセスになってる。
721デフォルトの名無しさん
2019/10/01(火) 19:41:25.43ID:8eIOCDAd >>720
その続きなどを読んでよ。言われていることはすでに書いてあるんですけど
どうしようもないという結論が得られたのでw、
結局、こんなことにもそれなりの差があるんだから「常時それも無条件で」実行時間の差があるなんて気にするなんて無意味だなと
なにかそれが問題になったときに気にする対応すればいいだけだなという。のをそもそも言いたかったw
その続きなどを読んでよ。言われていることはすでに書いてあるんですけど
どうしようもないという結論が得られたのでw、
結局、こんなことにもそれなりの差があるんだから「常時それも無条件で」実行時間の差があるなんて気にするなんて無意味だなと
なにかそれが問題になったときに気にする対応すればいいだけだなという。のをそもそも言いたかったw
722デフォルトの名無しさん
2019/10/01(火) 19:44:28.64ID:fust4gpU >>718
> 内部関数なのにってとこがね
他の言語の場合、(基本的に)関数内の変数の変更は呼び出し元に反映されない。
つまりローカル変数になってるだろ?
それと同じなんだよ。POSIXの範囲ではlocalもtypesetもないから
シェルスクリプトにはローカル変数がない
ように思えるが、実はサブシェルを使うからローカル変数は必要ない。とも言える。
ローカル変数を実現するためのサブシェルと言える。
サブシェルの仕様としてローカル変数は必須の機能だが、別プロセスにするのは必須ではない。
サブシェル(別プロセス)と捉えるから仰々しくなってるが、
変数のローカル化と考えれば、内部関数内の変数をローカル化するってだけだから
「内部関数なのに」とは思わないだろ?
> 内部関数なのにってとこがね
他の言語の場合、(基本的に)関数内の変数の変更は呼び出し元に反映されない。
つまりローカル変数になってるだろ?
それと同じなんだよ。POSIXの範囲ではlocalもtypesetもないから
シェルスクリプトにはローカル変数がない
ように思えるが、実はサブシェルを使うからローカル変数は必要ない。とも言える。
ローカル変数を実現するためのサブシェルと言える。
サブシェルの仕様としてローカル変数は必須の機能だが、別プロセスにするのは必須ではない。
サブシェル(別プロセス)と捉えるから仰々しくなってるが、
変数のローカル化と考えれば、内部関数内の変数をローカル化するってだけだから
「内部関数なのに」とは思わないだろ?
723デフォルトの名無しさん
2019/10/01(火) 19:51:56.19ID:8eIOCDAd >>722
なにを教えてくれてるのか教えたいのかわからないです
内部変数?内部変数環境のことは言ってないです。他の言語でもの(内部)関数を呼ぶその返り値を使うって話なんですけど
内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか?内部関数という言葉が悪かったならすまんすですけど
なにを教えてくれてるのか教えたいのかわからないです
内部変数?内部変数環境のことは言ってないです。他の言語でもの(内部)関数を呼ぶその返り値を使うって話なんですけど
内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか?内部関数という言葉が悪かったならすまんすですけど
724デフォルトの名無しさん
2019/10/01(火) 19:52:05.05ID:fust4gpU >>718
そのコードに関しては
ls | {
a=0
while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
}
こう書けばいいって事がわかってから悩むことはなくなったなw
上記をさらに発展して、関数化すれば以下のようになる。
hoge() {
a=0
while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
}
ls | hoge
そうするとa変数は実質ローカル変数として扱ってるんだから
スコープ的にはこっちのほうが適切だと気づくだろう
そのコードに関しては
ls | {
a=0
while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
}
こう書けばいいって事がわかってから悩むことはなくなったなw
上記をさらに発展して、関数化すれば以下のようになる。
hoge() {
a=0
while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
}
ls | hoge
そうするとa変数は実質ローカル変数として扱ってるんだから
スコープ的にはこっちのほうが適切だと気づくだろう
725デフォルトの名無しさん
2019/10/01(火) 19:53:21.70ID:fust4gpU726デフォルトの名無しさん
2019/10/01(火) 19:56:56.36ID:8eIOCDAd >>725
なんか教えたがりのようですけど、ちょっと無理があるかなと
あくまでも「他の言語的感覚では」が前提、それとは違うというのの確認でしかないんですけど
使い分けるとかそもそも内部変数の話はしてないんですよ
なんか教えたがりのようですけど、ちょっと無理があるかなと
あくまでも「他の言語的感覚では」が前提、それとは違うというのの確認でしかないんですけど
使い分けるとかそもそも内部変数の話はしてないんですよ
727デフォルトの名無しさん
2019/10/01(火) 20:00:53.41ID:fust4gpU728デフォルトの名無しさん
2019/10/01(火) 20:02:16.96ID:8eIOCDAd そもそものそもそもは、bcの毎回起動するのに時間がかかるというので、せっっかくの標準で暗黙的にもマルチプロセスなのでサーバ&クラアント的に起動しとけばいいんじゃねと
trap 'exec 8>&-; exec 7>&-; rm -f from-server to-server' EXIT
mkfifo from-server
mkfifo to-server
exec 8<> to-server
exec 7<> from-server
< to-server bc -l > from-server &
calc () {
echo "$*" > to-server
read result < from-server
echo $result
}
てのを書いたのよ、単なる興味的にどれだけのコスト削減できるのかを試し確認するために。で、この一連の(他の言語的には)思ってもいなかったとこでコストがあるなと。その確認だけだよ。で、やっぱり>>721のようなことだなとw
trap 'exec 8>&-; exec 7>&-; rm -f from-server to-server' EXIT
mkfifo from-server
mkfifo to-server
exec 8<> to-server
exec 7<> from-server
< to-server bc -l > from-server &
calc () {
echo "$*" > to-server
read result < from-server
echo $result
}
てのを書いたのよ、単なる興味的にどれだけのコスト削減できるのかを試し確認するために。で、この一連の(他の言語的には)思ってもいなかったとこでコストがあるなと。その確認だけだよ。で、やっぱり>>721のようなことだなとw
729デフォルトの名無しさん
2019/10/01(火) 20:02:43.57ID:8eIOCDAd >>727
はいはい
はいはい
730デフォルトの名無しさん
2019/10/01(火) 20:09:04.89ID:fust4gpU731デフォルトの名無しさん
2019/10/01(火) 20:10:22.49ID:8eIOCDAd はいはい。知っていることを延々と言われても。それも聞いてもいないのに
732デフォルトの名無しさん
2019/10/01(火) 21:09:03.88ID:/EdGAgHY733デフォルトの名無しさん
2019/10/01(火) 21:21:30.07ID:T/R8ZN8b ろくにシェルスクリプトのことを知らないから聞いてみた。
親切に教えてくれる人がいた。
……何が不満なんだ?
親切に教えてくれる人がいた。
……何が不満なんだ?
734デフォルトの名無しさん
2019/10/01(火) 21:25:17.92ID:8eIOCDAd 何がお怒りのなのかさっぱりですけどw
735デフォルトの名無しさん
2019/10/01(火) 21:31:30.87ID:8eIOCDAd よくわからないが、他の言語で
func()
と
a = func()
で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが
てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません
func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718で
関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw
func()
と
a = func()
で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが
てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません
func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718で
関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw
736デフォルトの名無しさん
2019/10/01(火) 21:52:27.77ID:fust4gpU すべての言語はそれぞれ違っているんだが、
同じ言語がほしいのか?
同じ言語がほしいのか?
737デフォルトの名無しさん
2019/10/01(火) 21:57:08.01ID:Ueonb/Q5 みんな違って
みんないい
まつお
みんないい
まつお
738デフォルトの名無しさん
2019/10/01(火) 22:01:17.19ID:8eIOCDAd739デフォルトの名無しさん
2019/10/01(火) 22:14:23.82ID:8eIOCDAd そうだ、ksh(zsh)ならreadでと思ったら、逆に遅くなるのね
hoge | read a
サブシェルになるのはhoge。kshはパイプでもパイプを使わずになんちゃらを使ってなんとかかんとかwとかあったからちょっと期待したのに
あれだな、そもそもシェルスクリプトの関数の返り値はreturnでの実行ステータスしかない、それ以外の形態(テキスト)は考えていませんからこんな感じにしかなりませんってとこか
hoge | read a
サブシェルになるのはhoge。kshはパイプでもパイプを使わずになんちゃらを使ってなんとかかんとかwとかあったからちょっと期待したのに
あれだな、そもそもシェルスクリプトの関数の返り値はreturnでの実行ステータスしかない、それ以外の形態(テキスト)は考えていませんからこんな感じにしかなりませんってとこか
740デフォルトの名無しさん
2019/10/01(火) 22:58:18.96ID:9HRGRt02 for ループは、while よりも遅いだろ。
bash も、dash よりも遅いだろ
ループでは、for, bashを使わない方が速い
bash も、dash よりも遅いだろ
ループでは、for, bashを使わない方が速い
741デフォルトの名無しさん
2019/10/01(火) 23:34:09.29ID:DttT1lmW returnが返り値ってw
あれはエラー情報だろ
例外と同じ。
あれはエラー情報だろ
例外と同じ。
742デフォルトの名無しさん
2019/10/01(火) 23:35:42.98ID:DttT1lmW パイプで処理をつなげていくシェルスクリプトにおいて
返り値=出力なんだよ
出力を読み取って、処理して出力する
そういう基本がわかってないだけ
返り値=出力なんだよ
出力を読み取って、処理して出力する
そういう基本がわかってないだけ
743デフォルトの名無しさん
2019/10/01(火) 23:53:15.78ID:8eIOCDAd return
なんすけど。returnの意味知ってる?とかいう。いや、しつれい
エラー情報でもない、単なる終了ステータス。exit ではないのは、まあ、関数だからと、exit と区別がつかないからかなw
なんすけど。returnの意味知ってる?とかいう。いや、しつれい
エラー情報でもない、単なる終了ステータス。exit ではないのは、まあ、関数だからと、exit と区別がつかないからかなw
744デフォルトの名無しさん
2019/10/01(火) 23:59:02.30ID:8eIOCDAd function name () { }
が、POSIXではないのは(これからも採用されないかも?採用するの?)というのは、関数じゃねえー、所詮コマンドだなというとこかなと思ったりしてみたり、今回w
>>742そのレベルで馬鹿にできるのはあなたがそのレベルと言っているようなもんかなとw
てか、return なのにそれを返り値と見るのを頭から否定するのは、いままでの同一人物としか思えないんだけど。シェルスクリプトは知っているがシェルスクリプトしか知らないシェルスクリプトにだけ拘るw
が、POSIXではないのは(これからも採用されないかも?採用するの?)というのは、関数じゃねえー、所詮コマンドだなというとこかなと思ったりしてみたり、今回w
>>742そのレベルで馬鹿にできるのはあなたがそのレベルと言っているようなもんかなとw
てか、return なのにそれを返り値と見るのを頭から否定するのは、いままでの同一人物としか思えないんだけど。シェルスクリプトは知っているがシェルスクリプトしか知らないシェルスクリプトにだけ拘るw
745デフォルトの名無しさん
2019/10/02(水) 00:19:13.78ID:DWeKr+Az746デフォルトの名無しさん
2019/10/02(水) 00:20:54.57ID:238K9SSk マジで言ってるの?もっと勉強しよう、他人にアタるならw
747デフォルトの名無しさん
2019/10/02(水) 00:20:59.41ID:DWeKr+Az アセンブラでもreturn(RET)がある。
これも戻るという意味なだけ
呼び出し元に何かを戻すという意味はない
これも戻るという意味なだけ
呼び出し元に何かを戻すという意味はない
748デフォルトの名無しさん
2019/10/02(水) 00:23:56.96ID:238K9SSk アセンブラでもマクロアセンブラはあったりするけどな
戻り値をどういう形態で(どのレジスタにとか)という決まりであれば
>呼び出し元に何かを戻すという意味はない
マジで言っているの?アホらしい
戻り値をどういう形態で(どのレジスタにとか)という決まりであれば
>呼び出し元に何かを戻すという意味はない
マジで言っているの?アホらしい
749デフォルトの名無しさん
2019/10/02(水) 00:25:12.52ID:DWeKr+Az750デフォルトの名無しさん
2019/10/02(水) 00:26:09.34ID:DWeKr+Az https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_24
returnの説明にも、nは終了ステータスと書いてある。
return valueとは書いていない
returnの説明にも、nは終了ステータスと書いてある。
return valueとは書いていない
751デフォルトの名無しさん
2019/10/02(水) 00:30:13.30ID:238K9SSk752デフォルトの名無しさん
2019/10/02(水) 01:32:56.67ID:o4tQ0hze >>735
よく分からないで批判する癖は辞めた方が良い
よく分からないで批判する癖は辞めた方が良い
753デフォルトの名無しさん
2019/10/02(水) 01:35:11.54ID:o4tQ0hze >>751
機械語にreturnに類する語は出てこないぞ?
機械語にreturnに類する語は出てこないぞ?
754デフォルトの名無しさん
2019/10/02(水) 01:35:40.52ID:238K9SSk 「よくわからない」が何を指しているのか「よくわからない」だろう?
また単なる「語」に食いつくwいつものかとしか思えません
また単なる「語」に食いつくwいつものかとしか思えません
755デフォルトの名無しさん
2019/10/02(水) 01:36:26.76ID:238K9SSk756デフォルトの名無しさん
2019/10/02(水) 01:39:39.82ID:238K9SSk757デフォルトの名無しさん
2019/10/02(水) 01:53:53.42ID:o4tQ0hze いつもの妄言を喚いて自分の敵は一人だと思い込んでる痛い奴だったか
758デフォルトの名無しさん
2019/10/02(水) 01:55:39.44ID:238K9SSk 敵www
そういう姿勢だったのね。そうだよね、あなたはw
そういう姿勢だったのね。そうだよね、あなたはw
759デフォルトの名無しさん
2019/10/02(水) 02:46:06.49ID:JFJLbhDm IDが変わっても判別しやすいのはいいこと
ぼんやりしてて助かる
ぼんやりしてて助かる
760デフォルトの名無しさん
2019/10/02(水) 02:51:03.64ID:o4tQ0hze >>758
いやおまえ、オレと関係ない人を同一人物扱いしてんじゃん
いやおまえ、オレと関係ない人を同一人物扱いしてんじゃん
761デフォルトの名無しさん
2019/10/02(水) 02:58:29.05ID:238K9SSk762デフォルトの名無しさん
2019/10/02(水) 03:24:37.13ID:DWeKr+Az 知らないなら言わなければいいのにw
RET命令(Return from Procedure)
http://softwaretechnique.jp/OS_Development/Tips/IA32_Instructions/RET.html
RET命令(Return from Procedure)
http://softwaretechnique.jp/OS_Development/Tips/IA32_Instructions/RET.html
763デフォルトの名無しさん
2019/10/02(水) 03:28:45.47ID:238K9SSk764デフォルトの名無しさん
2019/10/02(水) 03:43:25.73ID:DWeKr+Az 同じだだろ。何いってんの?
略だから違うんだって言いたいの?
略だから違うんだって言いたいの?
765デフォルトの名無しさん
2019/10/02(水) 03:44:26.53ID:o4tQ0hze >>762
そしてそれはアセンブリ言語という..
そしてそれはアセンブリ言語という..
766デフォルトの名無しさん
2019/10/02(水) 03:46:58.80ID:DWeKr+Az シェルスクリプトのreturnは終了ステータスを返すもので
これは他の言語の返り値ではないのは一目瞭然なんだがね
だからこそ $_ という変数(外部コマンドを呼び出した時の終了ステータス)で
アクセスできるわけだし
しらないならシェルスクリプトを勉強してくださいって言うしか無いな
なんならbashのドキュメント引用しようか?
return [n]
指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマン
ドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行
中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの
終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以
外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラッ
プ に設定されたコマンドが実行されます。
これは他の言語の返り値ではないのは一目瞭然なんだがね
だからこそ $_ という変数(外部コマンドを呼び出した時の終了ステータス)で
アクセスできるわけだし
しらないならシェルスクリプトを勉強してくださいって言うしか無いな
なんならbashのドキュメント引用しようか?
return [n]
指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマン
ドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行
中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの
終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以
外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラッ
プ に設定されたコマンドが実行されます。
767デフォルトの名無しさん
2019/10/02(水) 03:47:32.93ID:DWeKr+Az768デフォルトの名無しさん
2019/10/02(水) 03:49:09.36ID:238K9SSk >>764
マジか
残念ながらが同一人物に見えるとやはりなお思ってしまうよw
マジか。そんなんで偉ぶるwなんの意味があるのだかさっぱり
そもそもマシン語ではない、アセンブリ=ニーモニックだし。ニーモニック命令は3文字にという昔の風習なだけだろうに
豆知識
そもそも、そんなRETでもいいけどReturnすらないCPUもある。POPしてジャンプという
なんだかなあ
マジか
残念ながらが同一人物に見えるとやはりなお思ってしまうよw
マジか。そんなんで偉ぶるwなんの意味があるのだかさっぱり
そもそもマシン語ではない、アセンブリ=ニーモニックだし。ニーモニック命令は3文字にという昔の風習なだけだろうに
豆知識
そもそも、そんなRETでもいいけどReturnすらないCPUもある。POPしてジャンプという
なんだかなあ
769デフォルトの名無しさん
2019/10/02(水) 03:55:47.57ID:238K9SSk770デフォルトの名無しさん
2019/10/02(水) 04:19:21.82ID:238K9SSk771デフォルトの名無しさん
2019/10/02(水) 06:38:15.47ID:Ge1fP5ct シェルスクリプトはシェルスクリプトだっていってんのに
俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!
といわれても、
うんじゃあ、シェルスクリプトを使えるように、シェルスクリプトの勉強をしましょうか?
としか言えんわなw
俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!
といわれても、
うんじゃあ、シェルスクリプトを使えるように、シェルスクリプトの勉強をしましょうか?
としか言えんわなw
772デフォルトの名無しさん
2019/10/02(水) 07:03:56.09ID:R26grXOk アセンブラじゃなくて機械語だってすごいよなw
773デフォルトの名無しさん
2019/10/02(水) 08:47:07.26ID:238K9SSk >>771
どう読んで、そう思っているのか??
俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!なんてこれっぽっちも言ってないけど
他の言語の関数とはやっぱ違う他の言語の関数と同じようにはできないねというだけだが?端的には>>735と所詮コマンドということ
POSIXとしてもfunctionと名乗ってるけど、一般的=他の多くの言語のfunctionとは違うfunction、functionというよりコマンドだなやっぱちう
それがシェルスクリプトのfunctionで他の言語のfunctionとは違うって強く俺に言いたいんですかね?
いいよ、めんどくさいから読まなくても。レスするのもめんどくさいからw
>>772
まあ、そういう意味じゃないんだけどね(どういう意味のレスなのかイマイチだがw)
マクロアセンブラがあるようにアセンブラはどのようにもできる、やろうと思えば。縛りはそこじゃなくて、機械語だなという
また、機械語になんて関数なんて概念ないからねって話にも膨らむのになというw
どう読んで、そう思っているのか??
俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!なんてこれっぽっちも言ってないけど
他の言語の関数とはやっぱ違う他の言語の関数と同じようにはできないねというだけだが?端的には>>735と所詮コマンドということ
POSIXとしてもfunctionと名乗ってるけど、一般的=他の多くの言語のfunctionとは違うfunction、functionというよりコマンドだなやっぱちう
それがシェルスクリプトのfunctionで他の言語のfunctionとは違うって強く俺に言いたいんですかね?
いいよ、めんどくさいから読まなくても。レスするのもめんどくさいからw
>>772
まあ、そういう意味じゃないんだけどね(どういう意味のレスなのかイマイチだがw)
マクロアセンブラがあるようにアセンブラはどのようにもできる、やろうと思えば。縛りはそこじゃなくて、機械語だなという
また、機械語になんて関数なんて概念ないからねって話にも膨らむのになというw
774デフォルトの名無しさん
2019/10/02(水) 09:15:47.03ID:gGwgwb6G 俺はたぬきしか知らないなんて言ってない!
みかんはたぬきとは違う!
みかんはたぬきとは違う!
775デフォルトの名無しさん
2019/10/02(水) 09:19:32.36ID:R26grXOk 機械語に関数の概念が無いってすごいよなw
776デフォルトの名無しさん
2019/10/02(水) 09:23:09.06ID:238K9SSk めんどくせえなあ。とんちんかんな変すぎるレスいらんw
知らなかったのはサブルーチンとして使うのと関数として使うのにコストの差が思った以上にあったというだけだな。functionなんだからそんなに差が無いようになんかあるだろうと思い込みによる
それだけだよ
別にだから関数のように使わないとも言わんし、いままでも使ってるし変わらずに使うけど
知らなかったのはサブルーチンとして使うのと関数として使うのにコストの差が思った以上にあったというだけだな。functionなんだからそんなに差が無いようになんかあるだろうと思い込みによる
それだけだよ
別にだから関数のように使わないとも言わんし、いままでも使ってるし変わらずに使うけど
777デフォルトの名無しさん
2019/10/02(水) 09:25:03.86ID:238K9SSk778デフォルトの名無しさん
2019/10/02(水) 09:39:55.43ID:238K9SSk 機械語にはサブルーチンはある。なきゃ困る(主にどこのアドレスに返ってくるのかのため)。単なるサブルーチンコール、引数の概念とかも無いw
引数も返り値(サブルーチン+返り値=関数)も、単なるmoveとかpushとかで「適当」なとこに入れての(主に高級言語(ほぼCだが)の仕様にあわせての)で、機械語の概念では存在しない
おしまい
引数も返り値(サブルーチン+返り値=関数)も、単なるmoveとかpushとかで「適当」なとこに入れての(主に高級言語(ほぼCだが)の仕様にあわせての)で、機械語の概念では存在しない
おしまい
779デフォルトの名無しさん
2019/10/02(水) 10:11:40.69ID:caSqV8Sl これマジ?
780デフォルトの名無しさん
2019/10/02(水) 10:39:50.67ID:238K9SSk この板にもあるだろうと思ったらあったし、
「関数」で検索したらアセンブリで関数というのを説明しているようなレスもあるやん
調べろよそのぐらいw
「関数」で検索したらアセンブリで関数というのを説明しているようなレスもあるやん
調べろよそのぐらいw
781デフォルトの名無しさん
2019/10/02(水) 10:46:24.58ID:238K9SSk ああ、すまん。勇み足だった。よく読んだらあんま詳しくはないかな
ある程度知っていての注意点ぐらいだった
ある程度知っていての注意点ぐらいだった
782デフォルトの名無しさん
2019/10/02(水) 10:51:24.96ID:238K9SSk783デフォルトの名無しさん
2019/10/02(水) 10:54:19.14ID:caSqV8Sl サンクス
読んでくるわ
読んでくるわ
784デフォルトの名無しさん
2019/10/02(水) 11:01:36.56ID:vYvaxxoe だいたいシェルスクリプトと機械語なんて超相性悪いから
シェルスクリプトの概念を例える別の言語として機械語(含むアセンブリ言語)は最悪の選択ではw
シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか
適用範囲の節で明言してるし。
(つーかこの喧嘩って俺がkshの速度を持ち出したことが発端なんだな…
良かれと思って余計なこと言わなけりゃよかった)
シェルスクリプトの概念を例える別の言語として機械語(含むアセンブリ言語)は最悪の選択ではw
シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか
適用範囲の節で明言してるし。
(つーかこの喧嘩って俺がkshの速度を持ち出したことが発端なんだな…
良かれと思って余計なこと言わなけりゃよかった)
785デフォルトの名無しさん
2019/10/02(水) 11:18:14.46ID:238K9SSk786デフォルトの名無しさん
2019/10/02(水) 11:26:54.15ID:238K9SSk >>784
>シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか
>適用範囲の節で明言してるし
CPUによって全然違うし(CPUメーカーが作るもんでしょう)なあ。標準化なんてする範疇じゃないんじゃないかな
>kshの速度を持ち出したことが発端なんだな…
いや、違うよ。kshの件は早々に終わっているといえば終わってる。そんなのが全く関係ないとこでながながとなってるだけだな
その前の俺の思惑wからだな、長々としている原因は。強いて言えば
>シェルスクリプトの標準・仕様書であるPOSIXも機械語には全く言及してないってか
>適用範囲の節で明言してるし
CPUによって全然違うし(CPUメーカーが作るもんでしょう)なあ。標準化なんてする範疇じゃないんじゃないかな
>kshの速度を持ち出したことが発端なんだな…
いや、違うよ。kshの件は早々に終わっているといえば終わってる。そんなのが全く関係ないとこでながながとなってるだけだな
その前の俺の思惑wからだな、長々としている原因は。強いて言えば
787デフォルトの名無しさん
2019/10/02(水) 14:05:10.23ID:D8VruPt/788デフォルトの名無しさん
2019/10/02(水) 14:31:23.77ID:238K9SSk よくわかんないなw
789デフォルトの名無しさん
2019/10/02(水) 17:06:22.98ID:em13adMU ファイル名に()が入ってるやつをリネームしようとしたら
Syntax error: "(" unexpected
と言われる・・
ファイル名から()取り除いたらうまくいきました
どうすればよいでしょうか
Syntax error: "(" unexpected
と言われる・・
ファイル名から()取り除いたらうまくいきました
どうすればよいでしょうか
790デフォルトの名無しさん
2019/10/02(水) 17:19:25.51ID:ccSnb7w3 touch "foo()bar" で作れたからそれかな
あるいは 正規表現のできるrenameツールに任せちゃう
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg
https://pastebin.com/pYBipcQt
~/bin/rename.pl dry s/foo../foo/ foo\(\)bar
foo()bar => foobar
~/bin/rename.pl run s/foo../foo/ foo\(\)bar
あるいは 正規表現のできるrenameツールに任せちゃう
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg
https://pastebin.com/pYBipcQt
~/bin/rename.pl dry s/foo../foo/ foo\(\)bar
foo()bar => foobar
~/bin/rename.pl run s/foo../foo/ foo\(\)bar
791デフォルトの名無しさん
2019/10/02(水) 20:34:07.49ID:9nRFYl/a792デフォルトの名無しさん
2019/10/02(水) 20:52:22.16ID:56vpBHGI >>789
ファイル名をシングルクォートまたはダブルクォートで括る。またはそのようにシェルが特別な解釈をしてしまう文字の直前に \ を入れる。
ファイル名をシングルクォートまたはダブルクォートで括る。またはそのようにシェルが特別な解釈をしてしまう文字の直前に \ を入れる。
793デフォルトの名無しさん
2019/10/03(木) 00:15:58.71ID:SqD9WxB/ 空白絡みで便乗質問です。
スクリプトがあるディレクトリを変数に入れるために、よく、
BASEDIR=$(cd $(dirname $0); pwd)
みたいなの書くと思うんですけど、
スクリプトを呼び出す際の相対パスや絶対パスに空白があっても大丈夫な場合はどう""をつければいいんでしょうか。
いつも試行錯誤するんですけどうまくいかなくて空白禁止にしちゃってます。
スクリプトがあるディレクトリを変数に入れるために、よく、
BASEDIR=$(cd $(dirname $0); pwd)
みたいなの書くと思うんですけど、
スクリプトを呼び出す際の相対パスや絶対パスに空白があっても大丈夫な場合はどう""をつければいいんでしょうか。
いつも試行錯誤するんですけどうまくいかなくて空白禁止にしちゃってます。
794デフォルトの名無しさん
2019/10/03(木) 00:16:32.35ID:SqD9WxB/ 大丈夫な場合→大丈夫にしたい場合、です。
795デフォルトの名無しさん
2019/10/03(木) 00:41:53.26ID:kXokk7Ss dirname "$0"じゃダメな理由はなに?
796デフォルトの名無しさん
2019/10/03(木) 00:56:16.10ID:WHDqtNcX "$(dirname "$0")" じゃない
797デフォルトの名無しさん
2019/10/03(木) 02:58:37.36ID:DFQVUXe/ >>793
BASEDIR=$(cd "$(dirname "$0")"; pwd)
BASEDIR="$(cd "$(dirname "$0")"; pwd)"
↑これは不要
"引数"として渡す場合に必要。
変数への代入は引数ではないので不要
BASEDIR=$(cd "$(dirname "$0")"; pwd)
BASEDIR="$(cd "$(dirname "$0")"; pwd)"
↑これは不要
"引数"として渡す場合に必要。
変数への代入は引数ではないので不要
798デフォルトの名無しさん
2019/10/03(木) 07:38:56.48ID:vim6DLSQ799デフォルトの名無しさん
2019/10/03(木) 08:37:13.31ID:/bA39X9L 小数の計算がPOSIXで標準化されるって本当?
これどうにかしてほしいんだが
$ zsh -c 'echo $((0.1+0.2))'
0.30000000000000004
固定小数点をサポートしてくれよ。
これどうにかしてほしいんだが
$ zsh -c 'echo $((0.1+0.2))'
0.30000000000000004
固定小数点をサポートしてくれよ。
800デフォルトの名無しさん
2019/10/03(木) 09:12:38.31ID:BSBvRGI4 各言語での 0.1 + 0.2 の結果
http://0.30000000000000004.com/
http://0.30000000000000004.com/
801デフォルトの名無しさん
2019/10/03(木) 09:41:30.99ID:T62xH6xP 言語というよりはどういうライブラリ使っているかの問題だと思うが
802デフォルトの名無しさん
2019/10/03(木) 09:46:51.64ID:wbZFe5vy きちんと0.3返す言語は
分子と分母の2つ記録するから速度は遅くなる
遅いシェルスクリプトの選択した方法は正しい
分子と分母の2つ記録するから速度は遅くなる
遅いシェルスクリプトの選択した方法は正しい
803デフォルトの名無しさん
2019/10/03(木) 09:50:59.70ID:/bA39X9L いや、誰が浮動小数点数的な答えを求めてるのよ?
誰も数学的に間違った答えなんか求めてないでしょ?
誰も数学的に間違った答えなんか求めてないでしょ?
804デフォルトの名無しさん
2019/10/03(木) 13:46:15.91ID:oxXSy4fC 固定小数点なんて採用することはないな
提案してみろ、まずはStandard C Libraryとして
提案してみろ、まずはStandard C Libraryとして
805デフォルトの名無しさん
2019/10/03(木) 14:46:29.02ID:Fw9k5QN4806デフォルトの名無しさん
2019/10/03(木) 14:56:31.03ID:gitagY/F807デフォルトの名無しさん
2019/10/03(木) 15:03:35.77ID:Fw9k5QN4 そういうある意味特殊なことをしようとする意志のがあればな
結局はCなんだよどういう言語でもああいう部分は。そしてCがそうだからただそうなだけ。わざわざ言うようなことをするのは極めて少ないだろ
浮動小数点がIEEEで決められてる正規なものだし。特殊なプログラムを使えということだよ=シェルとかに求めるのは現在のコンピュータ界隈では無理筋だな
結局はCなんだよどういう言語でもああいう部分は。そしてCがそうだからただそうなだけ。わざわざ言うようなことをするのは極めて少ないだろ
浮動小数点がIEEEで決められてる正規なものだし。特殊なプログラムを使えということだよ=シェルとかに求めるのは現在のコンピュータ界隈では無理筋だな
808デフォルトの名無しさん
2019/10/03(木) 15:08:16.36ID:wbZFe5vy perl か何かに任せておけ
#!/usr/bin/env perl
use bigrat;
my ( $ss, $F, $ISO ) = (@ARGV);
unless ( defined $ISO ) { $ISO = 100 }
my %shutter_speed = (
30 => -5,
25 => -14/3,
20 => -13/3,
......
);
printf "%s\n", 0/1 + $shutter_speed{$ss} + $F_number{$F} - $ISO_number{$ISO};
ただし perl bigrat だと
0/1 +
を抜くと型が整数処理されるというわけのわからん挙動するケースがあったから
別の言語がいいけど
#!/usr/bin/env perl
use bigrat;
my ( $ss, $F, $ISO ) = (@ARGV);
unless ( defined $ISO ) { $ISO = 100 }
my %shutter_speed = (
30 => -5,
25 => -14/3,
20 => -13/3,
......
);
printf "%s\n", 0/1 + $shutter_speed{$ss} + $F_number{$F} - $ISO_number{$ISO};
ただし perl bigrat だと
0/1 +
を抜くと型が整数処理されるというわけのわからん挙動するケースがあったから
別の言語がいいけど
809デフォルトの名無しさん
2019/10/03(木) 17:47:54.90ID:vTPkh0Cq >>807
浮動小数点とIEEE754は同じ意味じゃないから語弊が生まれるよ。
文字コードとUTF-8ぐらいの関係だろう。
そして大抵の小数を扱えるプログラムがCでIEEE754に準拠した浮動小数点による取り扱いをしてるって意見は、全然同意できないな。
浮動小数点とIEEE754は同じ意味じゃないから語弊が生まれるよ。
文字コードとUTF-8ぐらいの関係だろう。
そして大抵の小数を扱えるプログラムがCでIEEE754に準拠した浮動小数点による取り扱いをしてるって意見は、全然同意できないな。
810デフォルトの名無しさん
2019/10/03(木) 18:03:01.77ID:NYKgu9W2 1. 数学的には正しくない。
2. 速度のために正確さを犠牲にしている。
3. 誰も間違った答えは望んでいない
仕様だから〜とかいう話じゃないんだよね。
本当はみんな正しい答えが欲しい。
シェルスクリプトに速度は重要じゃないんだから
正しい答えのほうが便利だろ
2. 速度のために正確さを犠牲にしている。
3. 誰も間違った答えは望んでいない
仕様だから〜とかいう話じゃないんだよね。
本当はみんな正しい答えが欲しい。
シェルスクリプトに速度は重要じゃないんだから
正しい答えのほうが便利だろ
811デフォルトの名無しさん
2019/10/03(木) 18:39:51.77ID:K4DSf+RO ほとんど近似値でたりるし必要なら自分でつくるなりすればとしか思わないよ
812デフォルトの名無しさん
2019/10/03(木) 18:40:45.48ID:Fw9k5QN4813デフォルトの名無しさん
2019/10/03(木) 20:14:25.67ID:A9ow2usS >>811
0.1+0.2が0.3にならなくてもいいよっていう業界を教えてくれ
0.1+0.2が0.3にならなくてもいいよっていう業界を教えてくれ
814デフォルトの名無しさん
2019/10/03(木) 20:20:38.23ID:gitagY/F 適当なところで丸めりゃ良いんだからいいじゃねえか
815デフォルトの名無しさん
2019/10/03(木) 20:23:06.87ID:Fw9k5QN4 少数なんて大体でしかないなんて常識だと思ってたのにな。少数使わないでも結局できたりするので、また、固定少数でも結局工夫が必要なのには変わりないので
なんでそんなに少数の正しさに拘っているのだか、どういう業界でそういうのをしかもスクリプトオンリーで書かなきゃならないって想像できないな
なんでそんなに少数の正しさに拘っているのだか、どういう業界でそういうのをしかもスクリプトオンリーで書かなきゃならないって想像できないな
816デフォルトの名無しさん
2019/10/03(木) 20:30:23.62ID:KR7C+a5e >>813
必要なら用途に合うもん使えよ
必要なら用途に合うもん使えよ
817デフォルトの名無しさん
2019/10/03(木) 23:39:56.70ID:5pSilKMJ 気が付いたら少数を使うことがほとんどなくなった
利子の計算ぐらいだが、これは何桁で計算を打ち切るか
あらかじめ決めておく。安易に double とか使わない
利子の計算ぐらいだが、これは何桁で計算を打ち切るか
あらかじめ決めておく。安易に double とか使わない
818デフォルトの名無しさん
2019/10/03(木) 23:43:58.79ID:6kVVAM38 簡単なシェルスクリプトしか書けんが何が覚えとけって言語ある?
s以外のsedの機能をようやく覚えたけどコマンドは文字列操作系で手一杯だわ
やっぱりperlの呪文覚えるしかないか
s以外のsedの機能をようやく覚えたけどコマンドは文字列操作系で手一杯だわ
やっぱりperlの呪文覚えるしかないか
819デフォルトの名無しさん
2019/10/03(木) 23:49:00.65ID:wbZFe5vy パイプが強烈だから文字列処理に強い perl でしょ
オブジェクト指向はいらない
オブジェクト指向はいらない
820デフォルトの名無しさん
2019/10/04(金) 00:41:14.19ID:jIZSSFYe >>818
JavaScript
JavaScript
821デフォルトの名無しさん
2019/10/04(金) 00:43:47.35ID:jIZSSFYe >>817
それな。何桁で計算を打ち切るだと、どこで誤差が出るか想定しやすいが
doubleとかだと、桁数小さくても誤差が出るから、想定しづらいんだよね。
シェルスクリプトは型が文字列しか無いんだから、
内部の都合である数値型には影響されてほしくないな
それな。何桁で計算を打ち切るだと、どこで誤差が出るか想定しやすいが
doubleとかだと、桁数小さくても誤差が出るから、想定しづらいんだよね。
シェルスクリプトは型が文字列しか無いんだから、
内部の都合である数値型には影響されてほしくないな
822デフォルトの名無しさん
2019/10/04(金) 01:20:38.52ID:5l5U7bxj >>812
文字コードってのは文字に番号を割り振って取り扱いますよ、という概念。
浮動小数点も一緒で、有限の長さの小数を、小数点の位置を自由にすること
(仮数部と基数部で表現する)ことで表しますよって概念。
各ベンダーが独自に実装したら不便極まりないから文字コードにおけるUnicode(とかUTF-8)と同様IEEE754という標準がある。
浮動小数点演算、と言ったときにそれは一概にIEEE754内部表現を用いた演算とはならない。
https://ja.wikipedia.org/wiki/任意精度演算 の方式の中にはIEEE754でない浮動小数点表現を取り扱ってるものだってあるだろう。
BCDで小数が扱えるライブラリだってそう言うのが多いと思うよ。
IEEE754の仕様の浮動小数点演算で十分な場合は、CPUに便利命令が用意されてて1桁ずつ計算とかしなくても
一発で計算が求まるからIEEE754の浮動小数点は使われている、というだけでしょ。
浮動小数点っていう大きい概念がどういったものかってのと、IEEE754はその概念を実現するための一例でしかないってのを、
Wikipediaなり読み込んで理解したほうが良いと思うよ。
ほんと、文字コードとUTF-8は同じものだ、って言ってるぐらいトンチンカンだから
文字コードってのは文字に番号を割り振って取り扱いますよ、という概念。
浮動小数点も一緒で、有限の長さの小数を、小数点の位置を自由にすること
(仮数部と基数部で表現する)ことで表しますよって概念。
各ベンダーが独自に実装したら不便極まりないから文字コードにおけるUnicode(とかUTF-8)と同様IEEE754という標準がある。
浮動小数点演算、と言ったときにそれは一概にIEEE754内部表現を用いた演算とはならない。
https://ja.wikipedia.org/wiki/任意精度演算 の方式の中にはIEEE754でない浮動小数点表現を取り扱ってるものだってあるだろう。
BCDで小数が扱えるライブラリだってそう言うのが多いと思うよ。
IEEE754の仕様の浮動小数点演算で十分な場合は、CPUに便利命令が用意されてて1桁ずつ計算とかしなくても
一発で計算が求まるからIEEE754の浮動小数点は使われている、というだけでしょ。
浮動小数点っていう大きい概念がどういったものかってのと、IEEE754はその概念を実現するための一例でしかないってのを、
Wikipediaなり読み込んで理解したほうが良いと思うよ。
ほんと、文字コードとUTF-8は同じものだ、って言ってるぐらいトンチンカンだから
823デフォルトの名無しさん
2019/10/04(金) 01:34:09.77ID:N11Kz3K2 >>813
セブンイレブンとか
セブンイレブンとか
824デフォルトの名無しさん
2019/10/04(金) 01:44:25.75ID:eSKeLXlH825デフォルトの名無しさん
2019/10/04(金) 03:06:51.70ID:gCVTKDJQ >>822
他のが無いというのではなく、実際に使われている多くはというのだよ
実際に使われているのはどれだけあるの?わざわざ使ってるのならそれは意味があるのだから、そうナニか書いてあってすぐにわかるだろうという。例えばbcのように
https://ja.wikipedia.org/wiki/IEEE_754
多くのプロセッサなどの〜 から書いてある通り。Javaがそうでないように書いてあるが、
https://www.ibm.com/developerworks/jp/java/library/j-jtp0114/index.html
同様に、java.math.BigDecimal が提供する任意精度の10進数もアプリケーションで使用されることは少ないため、開発者に無視されているケースがほとんどです
しかし整数を中心としたプログラムに、突如、整数以外の表現が出てくることがあります。たとえば、JDBCではSQLDECIMAL 列の優先変換形式としてBigDecimal が使用されます
なんてある意味それを表しすぎなくらい(まあ、ここは作る側ではなく使う側を言ってるけど)
CPUに便利命令ってFPUに対するのこと?一発で計算が決まるからという簡単だからとかじゃなくて、FPUがあるのはハードで支援用意しないとそもそも浮動小数点は重い演算だからなんだけど
>文字コードとUTF-8は同じものだ、って言ってるぐらい
いや、言ってないけど、なにか思い込みが激しいね。IEEEが利用されないのも普通という考え方もそうだが
他のが無いというのではなく、実際に使われている多くはというのだよ
実際に使われているのはどれだけあるの?わざわざ使ってるのならそれは意味があるのだから、そうナニか書いてあってすぐにわかるだろうという。例えばbcのように
https://ja.wikipedia.org/wiki/IEEE_754
多くのプロセッサなどの〜 から書いてある通り。Javaがそうでないように書いてあるが、
https://www.ibm.com/developerworks/jp/java/library/j-jtp0114/index.html
同様に、java.math.BigDecimal が提供する任意精度の10進数もアプリケーションで使用されることは少ないため、開発者に無視されているケースがほとんどです
しかし整数を中心としたプログラムに、突如、整数以外の表現が出てくることがあります。たとえば、JDBCではSQLDECIMAL 列の優先変換形式としてBigDecimal が使用されます
なんてある意味それを表しすぎなくらい(まあ、ここは作る側ではなく使う側を言ってるけど)
CPUに便利命令ってFPUに対するのこと?一発で計算が決まるからという簡単だからとかじゃなくて、FPUがあるのはハードで支援用意しないとそもそも浮動小数点は重い演算だからなんだけど
>文字コードとUTF-8は同じものだ、って言ってるぐらい
いや、言ってないけど、なにか思い込みが激しいね。IEEEが利用されないのも普通という考え方もそうだが
826デフォルトの名無しさん
2019/10/04(金) 03:13:49.05ID:gCVTKDJQ827デフォルトの名無しさん
2019/10/04(金) 04:25:45.39ID:jIZSSFYe もうさ、ハードで固定小数点数演算できるようにしたほうが良いんじゃね?
時代的にさ
時代的にさ
828デフォルトの名無しさん
2019/10/04(金) 05:02:19.85ID:Lr70dHDq BCDはCPUで支援してた(そういう命令があったが)ようだが、無くなったっぽいという
BCDは速度的に有利な側面があるからわざわざそれ専用に用意しなくてもで無くなったかもしれない
BCDは速度的に有利な側面があるからわざわざそれ専用に用意しなくてもで無くなったかもしれない
829デフォルトの名無しさん
2019/10/04(金) 07:56:41.21ID:sZOtDaP2 >>827
お前さんがこだわるほど他の人は必要だと思ってない。あったら便利なケースもあるかも知れんがコストなどに見合わないから誰もやらない。
お前さんがこだわるほど他の人は必要だと思ってない。あったら便利なケースもあるかも知れんがコストなどに見合わないから誰もやらない。
830デフォルトの名無しさん
2019/10/04(金) 08:55:49.66ID:UTOwlhyp 消費税の話もあるし、固定小数点は重要だよ
831デフォルトの名無しさん
2019/10/04(金) 11:44:19.51ID:VMw2vpri 固定小数点演算なんて整数演算と同等だからわざわざハードで実装しなくても問題ない
832デフォルトの名無しさん
2019/10/04(金) 14:32:11.23ID:hcjI0QEW >>818
そのままPerl覚えれば良い。
というのは、昔からあってあちこちで使われており、だいたいの Linux distribution はデフォルトでインストールされるような言語であるため。
インストールや環境整備で悩まなくて済む。後からモジュールを追加するとしても最初からrpmファイルがあったり、なくてもCPANを利用して簡単にインストールできる。
歴史が長く昔から使われて来たのでモジュールも沢山あり、またそれを解説しているサイトも多い。
そのままPerl覚えれば良い。
というのは、昔からあってあちこちで使われており、だいたいの Linux distribution はデフォルトでインストールされるような言語であるため。
インストールや環境整備で悩まなくて済む。後からモジュールを追加するとしても最初からrpmファイルがあったり、なくてもCPANを利用して簡単にインストールできる。
歴史が長く昔から使われて来たのでモジュールも沢山あり、またそれを解説しているサイトも多い。
833デフォルトの名無しさん
2019/10/04(金) 14:36:19.79ID:hcjI0QEW834デフォルトの名無しさん
2019/10/04(金) 14:37:02.99ID:5wfXTPgW alpine linuxでperllインストールされてないんだが?
835デフォルトの名無しさん
2019/10/04(金) 14:42:01.29ID:hcjI0QEW >>831
そうそう。整数計算後に割って桁合わせすれば良い。
そうそう。整数計算後に割って桁合わせすれば良い。
836デフォルトの名無しさん
2019/10/04(金) 14:42:43.80ID:hcjI0QEW >>834
そうか。まあそういうのもある。
そうか。まあそういうのもある。
837デフォルトの名無しさん
2019/10/04(金) 14:43:52.73ID:M3k51a5A 必要ならインストールすれば良いだけだ
838デフォルトの名無しさん
2019/10/04(金) 14:59:17.54ID:5wfXTPgW 余計なものに依存したくない
839デフォルトの名無しさん
2019/10/04(金) 17:13:04.07ID:/U6oHgYD そりゃお前の趣味だからな
perlを使いたいならインストールする
当たり前の話だよな
perlを使いたいならインストールする
当たり前の話だよな
840デフォルトの名無しさん
2019/10/04(金) 21:55:54.53ID:a0HWEhLa perlを使いたいわけじゃないからなぁ
841デフォルトの名無しさん
2019/10/04(金) 22:57:45.34ID:eSKeLXlH Perl, Python2・3 は最初から、入っているけど、
Ruby も、apt で、簡単にインストールできる
ただし、Ruby 2.3 〜 2.6 で、プログラマーが、新しめの書き方をしていた場合に、
古いバージョンで動かないことがあるかも
Ruby も、apt で、簡単にインストールできる
ただし、Ruby 2.3 〜 2.6 で、プログラマーが、新しめの書き方をしていた場合に、
古いバージョンで動かないことがあるかも
842デフォルトの名無しさん
2019/10/06(日) 09:16:44.91ID:XBuBF2Rc 全員がsudo権限あるわけじゃないしな・・・
843デフォルトの名無しさん
2019/10/06(日) 09:44:40.51ID:462kqzf/ perlなんて普通に入ってるからな
Solaris、AIX、HP-UX、FreeBSD、Ubuntu、Centos、Redhat、Fedora
俺が触ってきたシステムではデフォルトで入ってたな
入ってない方が少数派だろ
Solaris、AIX、HP-UX、FreeBSD、Ubuntu、Centos、Redhat、Fedora
俺が触ってきたシステムではデフォルトで入ってたな
入ってない方が少数派だろ
844デフォルトの名無しさん
2019/10/06(日) 11:20:12.25ID:NnE09bAt 少数派だが入ってない
845デフォルトの名無しさん
2019/10/06(日) 11:24:56.60ID:kChpVj98 所属する研究室のMFにも入ってねーな。
Bシェルとかは(もちろん)入ってるけど
そういう点で言えばPOSIX準拠のシェルがあるようなシステムにはPerlも入っていて
PerlもないようなシステムにはPOSIX準拠シェルもないのかも知れんw
Bシェルとかは(もちろん)入ってるけど
そういう点で言えばPOSIX準拠のシェルがあるようなシステムにはPerlも入っていて
PerlもないようなシステムにはPOSIX準拠シェルもないのかも知れんw
846デフォルトの名無しさん
2019/10/06(日) 12:03:22.79ID:NnE09bAt だからAlpine linuxにはPOSIX準拠のシェルは入っているが
Perlは入ってないんだって。
いい加減Perl依存やめようぜw
Perlは入ってないんだって。
いい加減Perl依存やめようぜw
847デフォルトの名無しさん
2019/10/06(日) 12:15:46.78ID:rthNV3zo 俺達もそろそろPOSIX汚染から脱却しようぜ
848デフォルトの名無しさん
2019/10/06(日) 12:17:46.00ID:NnE09bAt849デフォルトの名無しさん
2019/10/06(日) 12:21:19.21ID:rthNV3zo そもそも使ってないし
850デフォルトの名無しさん
2019/10/06(日) 12:28:35.75ID:NnE09bAt サーバー側で使われてる
851デフォルトの名無しさん
2019/10/06(日) 12:38:20.58ID:462kqzf/ 相変わらずPOSIX原理主義者が張り付いてるんだな
日本は信教の自由はあるが強要するのは犯罪だ
他人を巻き込まないで1人でやってろよ
日本は信教の自由はあるが強要するのは犯罪だ
他人を巻き込まないで1人でやってろよ
852デフォルトの名無しさん
2019/10/06(日) 12:54:03.04ID:NnE09bAt だからPOSIX原理主義じゃないってw
Alpineはbusybox使ってるからPOSIX未満なんだよ
Alpineはbusybox使ってるからPOSIX未満なんだよ
853デフォルトの名無しさん
2019/10/06(日) 13:05:31.69ID:462kqzf/ お前はperl使いたくないんだろ?
お前の自由だし好きにすればいい
それを他人に押し付けるなと言っている
俺は普通にperlを使う
俺の自由だし好きにする
以上
お前の自由だし好きにすればいい
それを他人に押し付けるなと言っている
俺は普通にperlを使う
俺の自由だし好きにする
以上
854デフォルトの名無しさん
2019/10/06(日) 13:12:15.17ID:rthNV3zo ∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
855デフォルトの名無しさん
2019/10/06(日) 13:16:18.11ID:NnE09bAt 誰もPerl使うなって言ってないだろ。
Perlが入ってない環境があるという
事実を言ってるんだが
Perlが入ってない環境があるという
事実を言ってるんだが
856デフォルトの名無しさん
2019/10/06(日) 14:00:34.35ID:mC4FM69a >>845
そのミッドフィールダーってなに?
そのミッドフィールダーってなに?
857デフォルトの名無しさん
2019/10/06(日) 14:56:55.93ID:VRfDnOhz マネーフォワードだろ。
858デフォルトの名無しさん
2019/10/06(日) 17:41:58.00ID:3lXqNGxa 容量削減のためにPerlだけ抜くのも変だしそれ目的なら他のも入ってないのでは?
859デフォルトの名無しさん
2019/10/06(日) 21:01:12.68ID:TprJMO+0 まぁないものどうこう言っても始まらない
ただwin のiE6とかのようにubuntu以外は淘汰されていくだろうから
最終的には問題ないんじゃない?
ただwin のiE6とかのようにubuntu以外は淘汰されていくだろうから
最終的には問題ないんじゃない?
860デフォルトの名無しさん
2019/10/06(日) 21:15:53.96ID:/W6lnfS0 Linuxはdistributionごとに色々目的が違うからPerl入ってないのがあっても特に不思議はない。
AndroidのベースのLinuxにも入ってないし、普通はそこでは必要とされない。
AndroidのベースのLinuxにも入ってないし、普通はそこでは必要とされない。
861デフォルトの名無しさん
2019/10/06(日) 21:31:35.20ID:1e7RWsdc AndroidをLinuxとして使ってるのはどれだけいるのかと
862デフォルトの名無しさん
2019/10/06(日) 22:18:30.79ID:+aq+gJyQ それ向けの端末エミュレータとかシェルスクリプト編集実行とかは結構種類あるけどね
割合は少ないだろうね
割合は少ないだろうね
863デフォルトの名無しさん
2019/10/07(月) 02:35:02.37ID:qQU+qyu9 そういう人はperlも必要なら入れるな。perlに限らず
864デフォルトの名無しさん
2019/10/07(月) 08:39:27.35ID:4YPUQoiH >>818 Python やっとけ。 perl は成仏させろ
865デフォルトの名無しさん
2019/10/07(月) 12:58:26.99ID:lSqRbxbA PerlはCの如くしぶとく残ってしまうと思うなあ。
866デフォルトの名無しさん
2019/10/07(月) 14:23:04.89ID:MItW4Ls8 sedやawkを忘れたんで代わりにperlを使うことが結構ある
867デフォルトの名無しさん
2019/10/07(月) 15:51:12.82ID:Wc5EJs/z perl -peをsed代わりに使ってるだけでperl自体には興味ないや
正規表現しか出番ないし使う機会がないんだよね
awkとかgrepとかどうせ他のコマンドも覚えなきゃならんし
正規表現しか出番ないし使う機会がないんだよね
awkとかgrepとかどうせ他のコマンドも覚えなきゃならんし
868デフォルトの名無しさん
2019/10/08(火) 14:32:15.36ID:C04IGCd6 >>865 残ることは残るだろうけど、誰からも見捨てられてる状態で生き延びていても学ぶ価値はない。
プログラミング言語人気トップ8、過去15年間で安定 - 例外はPython
2019/10/07 14:16 後藤大地
https://news.mynavi.jp/article/20191007-905781/
TIOBE Softwareから、2019年10月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題に
なっているかをインデックス化したもの。(中略)
TIOBE Softwareは発表の中で、毎年新たなプログラミング言語が登場しているものの、TIOBE
Programming Community Indexのトップ8は過去15年間でほとんど変化していないと説明した。
Perlが消えてPythonに入れ替わったことや、Objective-Cが消えてSwiftに替わったというのが大きな
例外で、それ以外に大きな変動はないと指摘している。
ただし、プログラミング言語の分野に関してはいくつかの傾向があるとして、その例としてPHPやPerlから
Pythonへ移っていること、新しいプログラミング言語としてDart、Scala、Lua、Rust、Kotlin、TypeScript
などが人気上昇の渦中にあることなどを説明している。
10月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/article/20191007-905781/images/001.jpg
プログラミング言語人気トップ8、過去15年間で安定 - 例外はPython
2019/10/07 14:16 後藤大地
https://news.mynavi.jp/article/20191007-905781/
TIOBE Softwareから、2019年10月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題に
なっているかをインデックス化したもの。(中略)
TIOBE Softwareは発表の中で、毎年新たなプログラミング言語が登場しているものの、TIOBE
Programming Community Indexのトップ8は過去15年間でほとんど変化していないと説明した。
Perlが消えてPythonに入れ替わったことや、Objective-Cが消えてSwiftに替わったというのが大きな
例外で、それ以外に大きな変動はないと指摘している。
ただし、プログラミング言語の分野に関してはいくつかの傾向があるとして、その例としてPHPやPerlから
Pythonへ移っていること、新しいプログラミング言語としてDart、Scala、Lua、Rust、Kotlin、TypeScript
などが人気上昇の渦中にあることなどを説明している。
10月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/article/20191007-905781/images/001.jpg
869デフォルトの名無しさん
2019/10/08(火) 15:00:13.27ID:dg9qT1Hg Perlはsedやawkと同じ位置で見ないとだめだよ
シェルスクリプトを書くときにsedやawkのように使う道具のひとつ
もちろんシェルスクリプトをまるごとPerlのスクリプトに置き換えてもいいけどそれは別の話
Perlを排除するのは武器を一つ捨てるようなもので損してるよ
シェルスクリプトを書くときにsedやawkのように使う道具のひとつ
もちろんシェルスクリプトをまるごとPerlのスクリプトに置き換えてもいいけどそれは別の話
Perlを排除するのは武器を一つ捨てるようなもので損してるよ
870デフォルトの名無しさん
2019/10/08(火) 15:03:58.28ID:4CpPhkv4 汎用言語としてはpython の時代に移ったかもしれないが
文字処理言語としてはいまだ現役
文字処理言語としてはいまだ現役
871デフォルトの名無しさん
2019/10/08(火) 15:16:45.62ID:wc9EJfFY872デフォルトの名無しさん
2019/10/08(火) 15:49:08.88ID:dg9qT1Hg 俺当然sedもawkも使えるんだけど?
awkで複雑になる処理をPerlで可読性高く楽に書いてるってだけ
あんたも使える道具をうまく選べばいいんでPerlを知らなくても気にするな
awkで複雑になる処理をPerlで可読性高く楽に書いてるってだけ
あんたも使える道具をうまく選べばいいんでPerlを知らなくても気にするな
873デフォルトの名無しさん
2019/10/08(火) 16:39:54.73ID:9VgyN7XE 「Perlの方が楽に書ける」なんていうのは個人の嗜好に依存してて,ほとんど無根拠に近い。
もしPerlの「素晴しさ」とやらを報しめたいのなら,もっと客観的な事実――導入率・実績云々――を提示したほうがいいよ。
尤も,俺に言わせればAWKのほうが〜Perlのほうが〜なんていう議論とも呼べない喧嘩それ自体くだらねぇけどな
もしPerlの「素晴しさ」とやらを報しめたいのなら,もっと客観的な事実――導入率・実績云々――を提示したほうがいいよ。
尤も,俺に言わせればAWKのほうが〜Perlのほうが〜なんていう議論とも呼べない喧嘩それ自体くだらねぇけどな
874デフォルトの名無しさん
2019/10/08(火) 17:07:54.66ID:uaD7+k1O >>872 sed もawk も使えるならPython を使えばいいじゃん。
お前がPythonを使えないだけだろ。
お前がPythonを使えないだけだろ。
875デフォルトの名無しさん
2019/10/08(火) 17:13:16.90ID:gh1TIWVl python使ってわざわざ長いコード書いてどうするの?
sed -e 's/ABC/XYZ/' file1.txt
python -c 'import sys,re; [print(re.sub("ABC","XYZ",l,1),end="") for l in sys.stdin]'
sed -e 's/ABC/XYZ/' file1.txt
python -c 'import sys,re; [print(re.sub("ABC","XYZ",l,1),end="") for l in sys.stdin]'
876デフォルトの名無しさん
2019/10/08(火) 18:40:06.69ID:4CpPhkv4 gnu sed なら -e すら省けるんだよな
877デフォルトの名無しさん
2019/10/08(火) 18:40:15.32ID:gO+Oxfwr こうして宗教戦争が始まったのです。
878デフォルトの名無しさん
2019/10/08(火) 19:07:13.65ID:/hvysQLZ pythonはワンラインにはあまり向かんのは同意。
フリーフォーマットじゃないんで当たり前といえば当たり前か。
フリーフォーマットじゃないんで当たり前といえば当たり前か。
879デフォルトの名無しさん
2019/10/08(火) 19:30:38.22ID:vS76WaY3 宗教戦争は自分の信じるものが正しく、それ以外は認めないという非寛容が原因で始まる
880デフォルトの名無しさん
2019/10/09(水) 02:18:53.91ID:CaMm18My python ワンライナーに挑戦 〜 初心者のお勉強 m(_ _)m - Qiita
https://qiita.com/wyamamo/items/667c79db7edbaa9a46a7
闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
https://qiita.com/cocuh/items/37bfdc0f24750127e7d3
杓子定規にするからこうなる
知恵比べはまた別の課題だろうに
https://qiita.com/wyamamo/items/667c79db7edbaa9a46a7
闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
https://qiita.com/cocuh/items/37bfdc0f24750127e7d3
杓子定規にするからこうなる
知恵比べはまた別の課題だろうに
881デフォルトの名無しさん
2019/10/11(金) 19:00:05.85ID:QtmRuluN case $value in
*-*=*-*)
esac
こんなふうに、*が複数ある場合の動きとかちゃんと仕様化されてるの
どのシェルでも同じように動く?
*-*=*-*)
esac
こんなふうに、*が複数ある場合の動きとかちゃんと仕様化されてるの
どのシェルでも同じように動く?
882デフォルトの名無しさん
2019/10/11(金) 19:51:09.99ID:5TKzffM3 「されてるの?」
なのか
「されてるの(だ)」
なのか。
なのか
「されてるの(だ)」
なのか。
883デフォルトの名無しさん
2019/10/11(金) 22:19:25.99ID:EZwTHuUV884デフォルトの名無しさん
2019/10/12(土) 11:56:42.38ID:6fabclhr >>883
意味がわからん
abbb 、という文字に対して、a*b はマッチするのが正しいの?
aに続く残りのbは*で全部消費されるんじゃないの?
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c) echo ok; esac'
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c) echo ok; esac'
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c*b*c) echo ok; esac'
すべてokってでる
どういうアルゴリズムなのかわからない
意味がわからん
abbb 、という文字に対して、a*b はマッチするのが正しいの?
aに続く残りのbは*で全部消費されるんじゃないの?
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c) echo ok; esac'
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c) echo ok; esac'
$ sh -c 'case "a-b-c-b-c-b-c" in (a*b*c*b*c*b*c) echo ok; esac'
すべてokってでる
どういうアルゴリズムなのかわからない
885デフォルトの名無しさん
2019/10/12(土) 13:05:32.76ID:19ZHiYan Perlの正規表現なら最長マッチがデフォ
886デフォルトの名無しさん
2019/10/12(土) 17:15:42.03ID:1KIHwFcK IPアドレスもgreedyが基本だな。
887デフォルトの名無しさん
2019/10/13(日) 14:15:24.81ID:wtTHifIn ワイルドカードもだよね
888デフォルトの名無しさん
2019/10/15(火) 20:13:38.52ID:tkdZ32xn889デフォルトの名無しさん
2019/10/16(水) 03:31:59.04ID:Pvq8peJ9 >>888
グロ
グロ
890デフォルトの名無しさん
2019/10/16(水) 08:08:38.68ID:9/jaba51 変数名を変数で指定できるのは欠陥じゃねえ
891デフォルトの名無しさん
2019/10/17(木) 13:11:40.29ID:huR1Dm0j はー、すげー。yashの実装に感動した
getopts "ab" OPT -ab
echo "$OPT $OPTIND" # => a 1:2
getopts "ab" OPT -ab
echo "$OPT $OPTIND" # => b 1:3
getopts "ab" OPT -ab # exit status = 1
echo "$OPT $OPTIND" # => ? 2
getopts "ab" OPT -ab
echo "$OPT $OPTIND" # => a 1:2
getopts "ab" OPT -ab
echo "$OPT $OPTIND" # => b 1:3
getopts "ab" OPT -ab # exit status = 1
echo "$OPT $OPTIND" # => ? 2
892デフォルトの名無しさん
2019/10/17(木) 16:55:00.31ID:PM8kIYTO if ls "*.txt" > /dev/null 2>&1
then
echo "OK"
else
echo "NG"
fi
まったくうまくいかない
なぜ単なるファイルの存在確認だけにこんな苦労するのか
then
echo "OK"
else
echo "NG"
fi
まったくうまくいかない
なぜ単なるファイルの存在確認だけにこんな苦労するのか
893デフォルトの名無しさん
2019/10/17(木) 17:04:24.98ID:z1/RyPhF ファイルの存在確認なら、-fを使えばいいだろ?
894デフォルトの名無しさん
2019/10/17(木) 17:05:16.55ID:e7ZwLQTq # # ls *txt && echo ok || echo bad
ls: '*txt' にアクセスできません: No such file or directory
bad
# # touch foo.txt
# # ls *txt && echo ok || echo bad
foo.txt
ok
こんな要領か?
ls: '*txt' にアクセスできません: No such file or directory
bad
# # touch foo.txt
# # ls *txt && echo ok || echo bad
foo.txt
ok
こんな要領か?
895デフォルトの名無しさん
2019/10/17(木) 17:05:47.88ID:z1/RyPhF あ、ディレクトリに *.txt があるかどうかってことか?
896デフォルトの名無しさん
2019/10/17(木) 17:08:50.43ID:PM8kIYTO >>893
ところがワイルドカード使うと途端に何も引っかからなくなる
ところがワイルドカード使うと途端に何も引っかからなくなる
897デフォルトの名無しさん
2019/10/17(木) 17:09:26.66ID:PM8kIYTO >>895
そうです
そうです
898デフォルトの名無しさん
2019/10/17(木) 17:10:05.98ID:z1/RyPhF getopts vs getopt だけどさ、
BSDにおいてgetoptのメリットって何?
BSD版のgetoptはロングオプションに対応してないし、
引数にスペースが入ったらうまく行かないし
使い勝手悪いと思うんだが。
もしかして最初に作られたのがgetoptで
それを改良してgetoptsがシェルビルトインとして作られた。
(その後GNU版getoptが改良され、getoptsよりも便利になった)
という流れだったりするの?
BSDにおいてgetoptのメリットって何?
BSD版のgetoptはロングオプションに対応してないし、
引数にスペースが入ったらうまく行かないし
使い勝手悪いと思うんだが。
もしかして最初に作られたのがgetoptで
それを改良してgetoptsがシェルビルトインとして作られた。
(その後GNU版getoptが改良され、getoptsよりも便利になった)
という流れだったりするの?
899デフォルトの名無しさん
2019/10/17(木) 17:10:16.84ID:e7ZwLQTq 普通のプログラミング言語と違って
シェルスクリプトはブーリアンの分岐は可能なら
if else 使うよりも && || が見やすく良いと思う
シェルスクリプトはブーリアンの分岐は可能なら
if else 使うよりも && || が見やすく良いと思う
900デフォルトの名無しさん
2019/10/17(木) 17:12:52.81ID:PM8kIYTO901デフォルトの名無しさん
2019/10/17(木) 17:13:24.29ID:z1/RyPhF >>896
アスタリスクを使うと、シェルが解釈して、
例えば、 ls * だと、 ls file1 file2 file3 file4 って実行したのと同じことになるんだぞ。
lsコマンドの中からはアスタリスクが使われてるかどうかなんてわからない。
そしてダブルクォートで括ると、lsコマンドの中から引数は "*" という文字列が渡されたようになるんだよ。
アスタリスクを使うと、シェルが解釈して、
例えば、 ls * だと、 ls file1 file2 file3 file4 って実行したのと同じことになるんだぞ。
lsコマンドの中からはアスタリスクが使われてるかどうかなんてわからない。
そしてダブルクォートで括ると、lsコマンドの中から引数は "*" という文字列が渡されたようになるんだよ。
902デフォルトの名無しさん
2019/10/17(木) 17:14:21.91ID:ieavKq01 うまくいかなかった原因分かった?
903デフォルトの名無しさん
2019/10/17(木) 17:19:49.73ID:z1/RyPhF >>899
それだめ。 shellcheck使ってみ、エラーになる。
shellcheck において && || みたいな三項演算子風な使い方は
func && VALUE=ok || VALUE=ng
という書き方(変数代入)のみ認められる。
func && foo || bar
は認められない。
なぜかと言うと、
1. func が 正常終了して
2. foo が 異常終了すると
3. bar が 実行されるから
変数代入に限れば必ずVALUE=okは正常終了するから、
この書き方に限って許されてる。
だから、一応fooが必ず正常終了するものであれば、使えなくはないけど
静的解析ではそれを知ることが不可能なので、shellcheckはエラーになる。
あともう一つ、barが異常終了したとき、&& || だと $?はエラーになるが、
ifで書けばfi終了後、$? は正常終了になってるという違いもある。
だからset -eでの挙動が変わる。
それだめ。 shellcheck使ってみ、エラーになる。
shellcheck において && || みたいな三項演算子風な使い方は
func && VALUE=ok || VALUE=ng
という書き方(変数代入)のみ認められる。
func && foo || bar
は認められない。
なぜかと言うと、
1. func が 正常終了して
2. foo が 異常終了すると
3. bar が 実行されるから
変数代入に限れば必ずVALUE=okは正常終了するから、
この書き方に限って許されてる。
だから、一応fooが必ず正常終了するものであれば、使えなくはないけど
静的解析ではそれを知ることが不可能なので、shellcheckはエラーになる。
あともう一つ、barが異常終了したとき、&& || だと $?はエラーになるが、
ifで書けばfi終了後、$? は正常終了になってるという違いもある。
だからset -eでの挙動が変わる。
904デフォルトの名無しさん
2019/10/17(木) 17:21:53.83ID:z1/RyPhF もちろん、&& 単独、もしくは || 単独で 使うならば問題ない。
func && foo とか func || bar ならOK
func && foo とか func || bar ならOK
905デフォルトの名無しさん
2019/10/17(木) 17:26:43.45ID:PM8kIYTO906デフォルトの名無しさん
2019/10/17(木) 17:33:24.48ID:z1/RyPhF あー、やっぱりそうなんや
https://en.wikipedia.org/wiki/Getopt
https://en.wikipedia.org/wiki/Getopts
getoptは1980年頃つくられた。初期のgetoptは低機能
その改良として getopts が1986年にBourne shellに実装されたらしい。
その後、getopts (Solaris) と getopt (GNU) それぞれ違うコマンドで
ロングオプションがサポートされ
どちらでもないBSD(macOS含む)では、従来どおり
低機能な getopt と それを少し改良した getopts があるが
どちらもロングオプションはサポートしてないと
https://en.wikipedia.org/wiki/Getopt
https://en.wikipedia.org/wiki/Getopts
getoptは1980年頃つくられた。初期のgetoptは低機能
その改良として getopts が1986年にBourne shellに実装されたらしい。
その後、getopts (Solaris) と getopt (GNU) それぞれ違うコマンドで
ロングオプションがサポートされ
どちらでもないBSD(macOS含む)では、従来どおり
低機能な getopt と それを少し改良した getopts があるが
どちらもロングオプションはサポートしてないと
907デフォルトの名無しさん
2019/10/17(木) 17:37:12.84ID:z1/RyPhF >>905
だからダブルクォートで括るからいかんのや
ls "$dir/tmp/" * ".txt"
これが正解(スペースは目立たせるために入れただけ)
この書き方ダサいよなw
ちなみに古いシェル(poshだっけ?)でこれがうまく行かない
バグがあるのだが、まあ誰も気にしないわなw
だからダブルクォートで括るからいかんのや
ls "$dir/tmp/" * ".txt"
これが正解(スペースは目立たせるために入れただけ)
この書き方ダサいよなw
ちなみに古いシェル(poshだっけ?)でこれがうまく行かない
バグがあるのだが、まあ誰も気にしないわなw
908デフォルトの名無しさん
2019/10/17(木) 17:40:52.02ID:z1/RyPhF getopts (Solaris) でロングオプションがサポートされたってシェルなんだ?って思ったら、
Solarisでは/usr/bin/getoptsが存在するのか・・・
紛らわしいな
https://docs.oracle.com/cd/E26924_01/html/E29112/getopts-1.html
Solarisでは/usr/bin/getoptsが存在するのか・・・
紛らわしいな
https://docs.oracle.com/cd/E26924_01/html/E29112/getopts-1.html
909デフォルトの名無しさん
2019/10/17(木) 17:43:27.80ID:z1/RyPhF あ、いや /usr/bin/getopts もあるにはあるが、libcのgetopt()実装が拡張されたから
それを使ってるBourne Shellでも使えるようになったのか
> getopts (Solaris enhanced)
> As a result, this new feature was also available in the built-in command getopts of the Bourne Shell.
それを使ってるBourne Shellでも使えるようになったのか
> getopts (Solaris enhanced)
> As a result, this new feature was also available in the built-in command getopts of the Bourne Shell.
910デフォルトの名無しさん
2019/10/17(木) 17:47:11.17ID:PM8kIYTO >>907
うおおできた!
ls "$dir/tmp/"*".txt" && echo "ok" || echo "ng"
みたいな感じにした
(txtファイルがひとつもないときエラー出るけど!無視)
d
うおおできた!
ls "$dir/tmp/"*".txt" && echo "ok" || echo "ng"
みたいな感じにした
(txtファイルがひとつもないときエラー出るけど!無視)
d
911デフォルトの名無しさん
2019/10/17(木) 19:06:38.69ID:yPX5iNuE ジェルスクリプトってバッドノウハウの塊なんだな…
912デフォルトの名無しさん
2019/10/17(木) 21:18:21.03ID:CFrrzXLD TeXで書かれた人工知能みて,「バッドノウハウ」って言ってるみたいw
913デフォルトの名無しさん
2019/10/17(木) 21:23:39.68ID:1JFOpLrO GLOB展開と""内での文字列展開は別物で""内での文字列展開にGLOBは含まれないというだけだけどな
914デフォルトの名無しさん
2019/10/17(木) 22:15:54.16ID:yIl6cqO6 マニュアルにかっちり書いてあるんだけどな
読み解くのは確かに能力が必要だが
読み解くのは確かに能力が必要だが
915デフォルトの名無しさん
2019/10/18(金) 00:25:26.47ID:DhnYyybT916デフォルトの名無しさん
2019/10/18(金) 00:33:26.40ID:l6dCA2lX $ mkdir tmp && cd tmp
$ touch $'a\nb.txt'
$ find . -type f -name '*.txt' | wc -l
2
$ touch $'a\nb.txt'
$ find . -type f -name '*.txt' | wc -l
2
917915
2019/10/18(金) 00:51:30.34ID:DhnYyybT 相対パスなら、-path で、カレントディレクトリからの相対パスで指定する
find . -type f -path "./test/*.rb" | wc -l
find . -type f -path "./test/*.rb" | wc -l
918デフォルトの名無しさん
2019/10/18(金) 02:59:20.26ID:Shj9H2hw なるほろ
bash によるオプション解析 - Qiita
https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb
bashのワイルドカード展開は該当するファイルが無いと*が展開されずに残る - Qiita
https://qiita.com/anqooqie/items/a2b607fe984ec982fa21
manはマニュアルだがman自体に取説が必要な皮肉
man manを読む時点で骨が折れるからしゃーない
bash によるオプション解析 - Qiita
https://qiita.com/b4b4r07/items/dcd6be0bb9c9185475bb
bashのワイルドカード展開は該当するファイルが無いと*が展開されずに残る - Qiita
https://qiita.com/anqooqie/items/a2b607fe984ec982fa21
manはマニュアルだがman自体に取説が必要な皮肉
man manを読む時点で骨が折れるからしゃーない
919915
2019/10/18(金) 04:58:51.55ID:DhnYyybT Ruby では、これでカレントディレクトリの該当ファイル数がわかる。
無ければ、0
ruby -e 'puts Dir.glob( "*.txt" ).length'
無ければ、0
ruby -e 'puts Dir.glob( "*.txt" ).length'
920デフォルトの名無しさん
2019/10/18(金) 09:56:55.15ID:dNt3vJtH /bin/ls -1d *.txt 2> /dev/null | wc -l
921デフォルトの名無しさん
2019/10/18(金) 11:02:02.61ID:lmpJOwiE find使うのは有りだと思うがmaxdepthとquitをつけたほうが良い
if test -n "$(find . -maxdepth 1 -name "*.txt" -print -quit)"; then
echo "OK"
else
echo "NG"
fi
if test -n "$(find . -maxdepth 1 -name "*.txt" -print -quit)"; then
echo "OK"
else
echo "NG"
fi
922デフォルトの名無しさん
2019/10/18(金) 11:55:18.87ID:O8T9zLoM923デフォルトの名無しさん
2019/10/18(金) 13:39:28.03ID:+f5J2l87 やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
924デフォルトの名無しさん
2019/10/18(金) 14:04:15.02ID:e+8RgQym >>918
暇なときに man と bash の man をちゃんと読み込むことをお勧めする
全部理解するのは確かに大変だが、こんな機能があるということだけ
覚えておいて、現実の問題に直面した時に詳細を再検索するのが
実用的。bash だけの問題ではないが。
暇なときに man と bash の man をちゃんと読み込むことをお勧めする
全部理解するのは確かに大変だが、こんな機能があるということだけ
覚えておいて、現実の問題に直面した時に詳細を再検索するのが
実用的。bash だけの問題ではないが。
925デフォルトの名無しさん
2019/10/18(金) 23:14:29.88ID:m9M+BHHc bashのmanはメンテされてないんじゃね?
926デフォルトの名無しさん
2019/10/18(金) 23:19:16.34ID:1h1F7NR4 日本語版がメンテナンスされてない(もしくは遅い)だけだよ
927デフォルトの名無しさん
2019/10/19(土) 00:34:03.00ID:+f1cBD8l 日本語版の記述が少なくて英語版の方だけびっしりとか実にマニュアルらしい
928デフォルトの名無しさん
2019/10/19(土) 13:26:03.97ID:9TTj0TwZ 近頃は無料で web 上で使える翻訳ソフトの質も上がっているし
頑張って読んでくれ。
頑張って読んでくれ。
929デフォルトの名無しさん
2019/10/19(土) 19:06:51.24ID:VYVT60v2 翻訳めっちゃハッテンしてきてるよね
930デフォルトの名無しさん
2019/10/19(土) 20:14:11.99ID:jibveSnU ウホッ
じゃなくて
なんだ
infoとかそっちしかハッテンしてないとかあるじゃん
じゃなくて
なんだ
infoとかそっちしかハッテンしてないとかあるじゃん
931デフォルトの名無しさん
2019/10/20(日) 17:43:31.69ID:Tm15VeOJ まあ、確かに sed の s コマンドのオプションは man にも入れてほしかった。
オプション使えなくなったのかと思ったじゃないか…
オプション使えなくなったのかと思ったじゃないか…
932デフォルトの名無しさん
2019/10/20(日) 23:14:32.47ID:n5s+FSXq 日本語版だけスカスカと言えばlocate
933デフォルトの名無しさん
2019/10/21(月) 17:13:45.45ID:mT54cHzD まあ裏を返せばそれだけ国際標準から離れていないってことよね。
ar.localeとか酷い……
ar.localeとか酷い……
934デフォルトの名無しさん
2019/10/21(月) 21:16:47.36ID:SCSOJkPH あるユーザー(Aとする)が、他のユーザー(Bとする)にのみWrite権限があるファイルを削除するような作業を自動化したいです。
当然そのままでは削除できないので、AからRootに切り替わり、ファイルを削除した後、Rootを抜けてAに戻るというBashスクリプトを作成しようとしています。
AはSudoが実行できない環境で、Expectコマンドもありません。Rootのパスワードはわかっており、平文でシェルスクリプト内に書き込んでも構いません(使用者が数人で、かつ外部に接続できないため。なのでセキュリティの問題は今回は無視)。
このような状態で、どうにか目的を果たすスクリプトはかけますでしょうか。
OSはFedora10、新たにプログラムパッケージ等はインストールできません。
よろしくおねがいします。
当然そのままでは削除できないので、AからRootに切り替わり、ファイルを削除した後、Rootを抜けてAに戻るというBashスクリプトを作成しようとしています。
AはSudoが実行できない環境で、Expectコマンドもありません。Rootのパスワードはわかっており、平文でシェルスクリプト内に書き込んでも構いません(使用者が数人で、かつ外部に接続できないため。なのでセキュリティの問題は今回は無視)。
このような状態で、どうにか目的を果たすスクリプトはかけますでしょうか。
OSはFedora10、新たにプログラムパッケージ等はインストールできません。
よろしくおねがいします。
935デフォルトの名無しさん
2019/10/21(月) 21:41:04.04ID:aSOXSPh+ すなおにrootで全部やれば良いんじゃね?
936デフォルトの名無しさん
2019/10/21(月) 22:08:16.20ID:/woRRfjw >>934
そもそもAがファイルを消せるようにパーミッションが初めから設定されるようには出来ないの?
そもそもAがファイルを消せるようにパーミッションが初めから設定されるようには出来ないの?
937デフォルトの名無しさん
2019/10/21(月) 22:24:13.78ID:Ol8k0rNq >>934
ファイルを削除するだけの実行ファイルを作ってsetuidビット立てて所有者をBにするとかすればできないかな?
ファイルを削除するだけの実行ファイルを作ってsetuidビット立てて所有者をBにするとかすればできないかな?
938デフォルトの名無しさん
2019/10/21(月) 22:25:13.50ID:Ol8k0rNq 追記。シェルスクリプト自体にはsetuidは使えない。
939デフォルトの名無しさん
2019/10/21(月) 22:52:13.48ID:pvaospDZ Fedora10って10年前のかっ
su: must be run from a terminal
にならんのだったらsuでいいんじゃないの。パスワード流すのは exec ででも
su: must be run from a terminal
にならんのだったらsuでいいんじゃないの。パスワード流すのは exec ででも
940デフォルトの名無しさん
2019/10/22(火) 00:44:01.51ID:7OkeLCGH ディレクトリにwが付いてればファイルは消せるけどなあ
941デフォルトの名無しさん
2019/10/22(火) 02:43:55.19ID:T9lP8zyy942デフォルトの名無しさん
2019/10/22(火) 09:04:44.04ID:xSNqVMSD >>941
# mkdir /dir
# chown userA:groupA /dir
# chmod 700 /dir
# cp /bin/rm /dir/rmB
# chown userB:groupB /dir/rmB
# chmod 6755 /dir/rmB
userA $ /dir/rmB /home/userB/file
# mkdir /dir
# chown userA:groupA /dir
# chmod 700 /dir
# cp /bin/rm /dir/rmB
# chown userB:groupB /dir/rmB
# chmod 6755 /dir/rmB
userA $ /dir/rmB /home/userB/file
943デフォルトの名無しさん
2019/10/22(火) 10:51:03.29ID:p4xpj08d こんな文字列野中に含まれる数字を
ゼロパディングしたいと思います
"何とかって講義 第5回 何とか特集.mp3"
まずは2桁でそろえてやりたいのですが
grep "第[1-9]回"
で一桁のものを引っ掛けて
前後をsedで除いて
sed "s/.*第//g
sed "s/回.*//g"
ゼロ埋めはprintfで実現しようと思うのですが
printf %02d $times
もっとシンプルな方法は無いでしょうか?
ゼロパディングしたいと思います
"何とかって講義 第5回 何とか特集.mp3"
まずは2桁でそろえてやりたいのですが
grep "第[1-9]回"
で一桁のものを引っ掛けて
前後をsedで除いて
sed "s/.*第//g
sed "s/回.*//g"
ゼロ埋めはprintfで実現しようと思うのですが
printf %02d $times
もっとシンプルな方法は無いでしょうか?
944デフォルトの名無しさん
2019/10/22(火) 10:52:23.81ID:p4xpj08d なお最終的な文字列の組み立てなおしは
数字の前後も抽出して3つを連結するつもりです
数字の前後も抽出して3つを連結するつもりです
945デフォルトの名無しさん
2019/10/22(火) 11:04:28.98ID:+cbyszgy perl5 が使えるなら
echo "何とかって講義 第2345回 何とか特集.mp3" | perl -pe 's/第(\d+)回/ sprintf "第%06d回", $1/exm'
何とかって講義 第002345回 何とか特集.mp3
echo "何とかって講義 第2345回 何とか特集.mp3" | perl -pe 's/第(\d+)回/ sprintf "第%06d回", $1/exm'
何とかって講義 第002345回 何とか特集.mp3
946デフォルトの名無しさん
2019/10/22(火) 13:09:31.40ID:QfoZv31s $ echo "何とかって講義 第2345回 何とか特集.mp3" | sed -E 's/第([0-9]+)回/第000000\1回/; s/0*([0-9]{6})/\1/'
6桁揃えにしたければ最初に6個0を足して次に6桁のみ残す
$ rename -n 's/\d+/sprintf("%06d",$&)/e' *.mp3
rename utilityが使えるならsprintfが使える
6桁揃えにしたければ最初に6個0を足して次に6桁のみ残す
$ rename -n 's/\d+/sprintf("%06d",$&)/e' *.mp3
rename utilityが使えるならsprintfが使える
947デフォルトの名無しさん
2019/10/22(火) 15:10:24.02ID:W8s8s9Eh perlもrenameもPOSIX規格外
948デフォルトの名無しさん
2019/10/22(火) 15:18:54.31ID:AwOtA+WM みんな真偽値ってどうしてる?
949デフォルトの名無しさん
2019/10/22(火) 15:21:29.60ID:p4xpj08d950デフォルトの名無しさん
2019/10/22(火) 15:23:02.88ID:AwOtA+WM FLAG=true or false ?
FLAG=1 or 0 ?
FLAG=1 or unset ?
FLAG=1 or "" ?
それ以外?
FLAG=1 or 0 ?
FLAG=1 or unset ?
FLAG=1 or "" ?
それ以外?
951デフォルトの名無しさん
2019/10/22(火) 20:26:37.95ID:2f71vpaR alias FLAG true/alias FLAG false
if FLAG; then
if FLAG; then
952デフォルトの名無しさん
2019/10/22(火) 20:27:08.55ID:2f71vpaR でもBashだとファイル内では既定で使えない。
953デフォルトの名無しさん
2019/10/22(火) 21:23:51.15ID:CciDAIxr >>952
面白いけど、サブシェルの中で変えられないから
alias FLAG=true
(
alias FLAG=false
if FLAG; then
echo true
fi
)
出力
true
面白いけど、サブシェルの中で変えられないから
alias FLAG=true
(
alias FLAG=false
if FLAG; then
echo true
fi
)
出力
true
954デフォルトの名無しさん
2019/10/23(水) 10:43:57.77ID:oiOUCahJ TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
FLAG=$TRUE or $FALSE
FALSE=$([ ! $TRUE ];echo $?)
FLAG=$TRUE or $FALSE
955デフォルトの名無しさん
2019/10/23(水) 10:57:17.22ID:jQcWWJt3 サイトによってrenameの構文が違うけどコマンド自体が違うのな
perl付属のprenameとutil-linux付属のrename.ulがあるとか
alternativesで書き換えられてるんだからそら気付かんわ
perl付属のprenameとutil-linux付属のrename.ulがあるとか
alternativesで書き換えられてるんだからそら気付かんわ
956デフォルトの名無しさん
2019/10/24(木) 17:48:17.61ID:mthfJT/n >>953
知らんかった。恥ずかしいw
知らんかった。恥ずかしいw
957デフォルトの名無しさん
2019/10/24(木) 17:49:17.77ID:mthfJT/n >>954
それってTRUE=0とするのと何が違うの?
それってTRUE=0とするのと何が違うの?
958デフォルトの名無しさん
2019/10/24(木) 18:07:25.18ID:lp1ZwQII >>956
サブシェルは関係ない。俺もちゃんと仕様読んだわけじゃないけど、
aliasは実行時じゃなくて、1単位ごとに → パース → 実行 の
パース時に変換してる感じ
そして1単位というのは、
alias FLAG=true
alias FLAG=false; FLAG && echo true
↑これは一行で一単位、だからtrueと表示されてしまうし
関数とか、プロンプトから、func() { 改行 とかやると
} 改行 するまで、ずっと行頭に > って表示されるだろ?
あれが1単位。だから↓みたいなものもtrueって表示されてしまうんだよ
alias FLAG=true
func() {
alias FLAG=false
if FLAG; then
echo true
fi
}
func
サブシェルは関係ない。俺もちゃんと仕様読んだわけじゃないけど、
aliasは実行時じゃなくて、1単位ごとに → パース → 実行 の
パース時に変換してる感じ
そして1単位というのは、
alias FLAG=true
alias FLAG=false; FLAG && echo true
↑これは一行で一単位、だからtrueと表示されてしまうし
関数とか、プロンプトから、func() { 改行 とかやると
} 改行 するまで、ずっと行頭に > って表示されるだろ?
あれが1単位。だから↓みたいなものもtrueって表示されてしまうんだよ
alias FLAG=true
func() {
alias FLAG=false
if FLAG; then
echo true
fi
}
func
959793
2019/10/24(木) 18:35:35.72ID:n545jbBX >>795-797
時間が経ってしまいましたが、ありがとうございました
"$()"の中の"はエスケープする必要があるのかどうか、とか、変数代入への挙動とか、そういう細かいところがよくわかってなかったです。
時間が経ってしまいましたが、ありがとうございました
"$()"の中の"はエスケープする必要があるのかどうか、とか、変数代入への挙動とか、そういう細かいところがよくわかってなかったです。
960デフォルトの名無しさん
2019/10/24(木) 22:00:36.73ID:mthfJT/n >>958
あー。
aliasってたしか一つの構文解析のかなり初期段階で展開される筈だから,
その一つの解析対象の内部で定義されているaliasは(当然)それ自身の解析結果には反映されんな。
このへんだろうか??
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10
あー。
aliasってたしか一つの構文解析のかなり初期段階で展開される筈だから,
その一つの解析対象の内部で定義されているaliasは(当然)それ自身の解析結果には反映されんな。
このへんだろうか??
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10
961デフォルトの名無しさん
2019/10/25(金) 00:11:27.02ID:6btPTvif962デフォルトの名無しさん
2019/10/25(金) 07:59:28.70ID:6Bcci7V7963デフォルトの名無しさん
2019/10/25(金) 23:17:19.52ID:TUsRGFSK964デフォルトの名無しさん
2019/10/26(土) 06:21:32.20ID:0I+FrAtF >>963
> true/falseがビルトインじゃないシェルは存在しない
今ならそう言えるだろうが、かつては存在した
外部コマンドのtrue/falseがその名残りだ
> また、[ の結果はtrueなら0、falseなら1と決まっている
0は数値の0であってtrueではない
trueを表現するのに0を使っているだけだ
まあ真偽値を扱うならtrue/falseを使えってことだな
> true/falseがビルトインじゃないシェルは存在しない
今ならそう言えるだろうが、かつては存在した
外部コマンドのtrue/falseがその名残りだ
> また、[ の結果はtrueなら0、falseなら1と決まっている
0は数値の0であってtrueではない
trueを表現するのに0を使っているだけだ
まあ真偽値を扱うならtrue/falseを使えってことだな
965デフォルトの名無しさん
2019/10/26(土) 09:53:59.01ID:Q5pTtErv trueを表現するのに0を使っているというより、真偽に成功不成功をそのまま使ってるというだけだろ
966デフォルトの名無しさん
2019/10/26(土) 10:32:17.69ID:a0V3mxKP >>964
> 今ならそう言えるだろうが、かつては存在した
かつてとはいつで、どこの実装であるのか答えなさい
また、現存しない物の話をしても意味はない
そもそも [ が存在しない環境では使えない
外部コマンドの [ がその名残りだ
> 今ならそう言えるだろうが、かつては存在した
かつてとはいつで、どこの実装であるのか答えなさい
また、現存しない物の話をしても意味はない
そもそも [ が存在しない環境では使えない
外部コマンドの [ がその名残りだ
967デフォルトの名無しさん
2019/10/26(土) 10:33:01.78ID:swDBEFOl 成功/不成功は終了ステータスであって真偽値ではない
968デフォルトの名無しさん
2019/10/26(土) 10:37:22.98ID:3fttRo5u え、まさか、
hoge && FLAG=$TRUE || FLAG=$FALSE
:
:
if [ "$FLAG" -eq "$TRUE" ] then ・・・
if [ "$FLAG" -eq "$FALSE" ] then ・・・
とか書くつもり・・・?
hoge && FLAG=$TRUE || FLAG=$FALSE
:
:
if [ "$FLAG" -eq "$TRUE" ] then ・・・
if [ "$FLAG" -eq "$FALSE" ] then ・・・
とか書くつもり・・・?
969デフォルトの名無しさん
2019/10/26(土) 10:56:36.80ID:0I+FrAtF970デフォルトの名無しさん
2019/10/26(土) 11:14:58.17ID:3fttRo5u971デフォルトの名無しさん
2019/10/26(土) 11:16:54.58ID:Q5pTtErv while true
do
や、
FLAG=true
or
FLAG=false
if $FLAG; then
真偽に成功不成功をそのままは、なんて書きたかっただけだろ、そうの方が見た目がいいしな
なんでそんなに拘っているんだか
do
や、
FLAG=true
or
FLAG=false
if $FLAG; then
真偽に成功不成功をそのままは、なんて書きたかっただけだろ、そうの方が見た目がいいしな
なんでそんなに拘っているんだか
972デフォルトの名無しさん
2019/10/26(土) 11:21:27.44ID:3fttRo5u つーか、いいかげんにしろよ。
真偽値の値を何にするかって話だろ
誰も真偽値をどうやって生成するかの話なんかしてねーよ
真偽値の値を何にするかって話だろ
誰も真偽値をどうやって生成するかの話なんかしてねーよ
973デフォルトの名無しさん
2019/10/26(土) 11:22:36.82ID:3fttRo5u いつものやつ言っとくわ
>>971
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
>>971
/\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
974デフォルトの名無しさん
2019/10/26(土) 11:23:54.27ID:Q5pTtErv FLAG=true or false
FLAG=1 or 0
etc
なんでも好きにすればいいだろ
true/falseコマンドを使った方が見た目簡潔じゃないかと思うがな、個人的に。使わんけど
お前がいいかげんにしろよw
FLAG=1 or 0
etc
なんでも好きにすればいいだろ
true/falseコマンドを使った方が見た目簡潔じゃないかと思うがな、個人的に。使わんけど
お前がいいかげんにしろよw
975デフォルトの名無しさん
2019/10/26(土) 11:29:02.54ID:3fttRo5u976デフォルトの名無しさん
2019/10/26(土) 11:32:55.31ID:Q5pTtErv 俺は他alias使ったのやのその話題は、なにをわざわざ凝ったことしようとしてるのか意図不明で趣味なんだろなとしか思ってない
977デフォルトの名無しさん
2019/10/26(土) 11:33:38.63ID:T/HAOzs9 やっぱりどこでも動くシェルスクリプトなんて幻想なんだね…
978デフォルトの名無しさん
2019/10/26(土) 11:34:25.41ID:3fttRo5u >>976
趣味(実用的ではないネタコード)に、正当っぽい理由をつけるなって話だ
趣味(実用的ではないネタコード)に、正当っぽい理由をつけるなって話だ
979デフォルトの名無しさん
2019/10/26(土) 11:36:44.02ID:Q5pTtErv ただの雑談だろ
あれを強制するなりしているわけでもないのに、なにをそう否定してんだか
そんなヤツがリアルで一緒に仕事するなら思いっきりくそ叩くがなw
あれを強制するなりしているわけでもないのに、なにをそう否定してんだか
そんなヤツがリアルで一緒に仕事するなら思いっきりくそ叩くがなw
980デフォルトの名無しさん
2019/10/26(土) 11:37:51.16ID:3fttRo5u あとC言語の世界しか知らんようだから言っておくと、rubyは0も1もtrueな
シェルスクリプトは反対で0がtrueで1がfalseなんだ、それ以外の回答はない!ってのは
ちょっと考えが浅いんじゃないですかねぇw
http://osishow3.hateblo.jp/entry/2017/04/20/235500
nil is false
false is false
0 is true
1 is true
シェルスクリプトは反対で0がtrueで1がfalseなんだ、それ以外の回答はない!ってのは
ちょっと考えが浅いんじゃないですかねぇw
http://osishow3.hateblo.jp/entry/2017/04/20/235500
nil is false
false is false
0 is true
1 is true
981デフォルトの名無しさん
2019/10/26(土) 11:39:18.03ID:Q5pTtErv 何をひとりで妄想に走っているんだか
だれか「いいかげんにしろ」とか言ってなかったか?w
だれか「いいかげんにしろ」とか言ってなかったか?w
982デフォルトの名無しさん
2019/10/26(土) 11:42:23.29ID:3fttRo5u 俺に突っかかってきてないで、シェルスクリプトの話題をしたら?
983デフォルトの名無しさん
2019/10/26(土) 11:43:40.40ID:Q5pTtErv よくいうよw
984デフォルトの名無しさん
2019/10/26(土) 11:47:29.21ID:3fttRo5u そりゃいうだろ、いきなりシェルスクリプトと関係ない
「俺」の話を始めるんだからw
「俺」の話を始めるんだからw
985デフォルトの名無しさん
2019/10/26(土) 11:50:09.04ID:Q5pTtErv 言ったことに対してはそりゃ言うだろう。お前がわざわざ言ったんだから
そんなのが無くてもいいのに。お前だった元々のやつを「アホ」呼ばわりしてるじゃん
そんなのが無くてもいいのに。お前だった元々のやつを「アホ」呼ばわりしてるじゃん
986デフォルトの名無しさん
2019/10/26(土) 15:54:12.94ID:0I+FrAtF987デフォルトの名無しさん
2019/10/26(土) 16:04:47.31ID:+M+pJ73c set -eで正しく動かない
↓
set +eと書いて動くと主張。赤っ恥w
↓
set +eと書いて動くと主張。赤っ恥w
988デフォルトの名無しさん
2019/10/26(土) 16:15:33.38ID:0I+FrAtF 逃げ方がチョン臭くてキモい
989デフォルトの名無しさん
2019/10/26(土) 16:17:36.78ID:+M+pJ73c しかも、最初の状態が set +e だったら
set -e に状態が変わってしまうというクソコード
汎用性がない
set -e に状態が変わってしまうというクソコード
汎用性がない
990デフォルトの名無しさん
2019/10/26(土) 16:20:27.41ID:+M+pJ73c true / false を使えばいいのに、[ が入ってない環境を考慮せずに、
true / false が入ってないかもしれないから [ を使ったと言う無能ぶりw
true / false が入ってないかもしれないから [ を使ったと言う無能ぶりw
991デフォルトの名無しさん
2019/10/26(土) 16:22:55.60ID:0I+FrAtF 最初にset -eするとルール化するだけ
いちゃもんつけるの得意だな
いちゃもんつけるの得意だな
992デフォルトの名無しさん
2019/10/26(土) 16:24:16.70ID:0I+FrAtF []やtestが使えないシェル教えてくれよ
993デフォルトの名無しさん
2019/10/26(土) 16:25:06.04ID:+M+pJ73c TRUEの反対だからfalseというが、
FALSEの反対もfalseになってると気づいてなくて
そもそもシェルスクリプトの仕様をわかってないw
[ 0 = 0 ]; echo $? # => 0
[ ! 0 ]; echo $? # => 1
[ ! 1 ]; echo $? # => 1
FALSEの反対もfalseになってると気づいてなくて
そもそもシェルスクリプトの仕様をわかってないw
[ 0 = 0 ]; echo $? # => 0
[ ! 0 ]; echo $? # => 1
[ ! 1 ]; echo $? # => 1
994デフォルトの名無しさん
2019/10/26(土) 16:27:23.30ID:+M+pJ73c >>992
上の方で /bin/true, /bin/false コマンドがあるんだから
true, false が使えないシェルがあるはずだって主張していたぞw
その理屈で言えば [ コマンドもあるんだから、 [ が使えないシェルもあるってことになるんだがなw
上の方で /bin/true, /bin/false コマンドがあるんだから
true, false が使えないシェルがあるはずだって主張していたぞw
その理屈で言えば [ コマンドもあるんだから、 [ が使えないシェルもあるってことになるんだがなw
995デフォルトの名無しさん
2019/10/26(土) 16:28:56.67ID:+M+pJ73c 更に言うなら
TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
これにサブシェルを使うのもアホらしいw
TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
これにサブシェルを使うのもアホらしいw
996デフォルトの名無しさん
2019/10/26(土) 16:29:21.39ID:0I+FrAtF997デフォルトの名無しさん
2019/10/26(土) 16:29:57.11ID:+M+pJ73c998デフォルトの名無しさん
2019/10/26(土) 16:30:08.87ID:0I+FrAtF あーいつものマウントとらないと死ぬ病気のやつか
おだいじに
おだいじに
999デフォルトの名無しさん
2019/10/26(土) 16:30:30.62ID:+M+pJ73c1000デフォルトの名無しさん
2019/10/26(土) 16:30:49.43ID:+M+pJ73c >>998
マウント取られて可愛そうwww
マウント取られて可愛そうwww
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 76日 17時間 12分 59秒
新しいスレッドを立ててください。
life time: 76日 17時間 12分 59秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 清涼飲料水から麻薬成分東京都が注意喚起 [おっさん友の会★]
- 生活保護廃止、公務員の給与に最低賃金を適用⇦これをやるだけで国民の9割の不満が解消されるのにやらない理由 [218488394]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 【動画】男女混合レスリングのガチ試合の様子がこちら [738130642]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
