シェルスクリプト総合 その31

■ このスレッドは過去ログ倉庫に格納されています
2019/08/10(土) 23:17:50.64ID:L+B8OP2P
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その30
https://mevius.5ch.net/test/read.cgi/tech/1561989867/
2019/10/03(木) 07:38:56.48ID:vim6DLSQ
>>790
ありがとうございます
今のところThunarに標準昨日の一括リネームでなんとかなりました
>>791,792
ls: 'aaa (bbb) ccc.jpg'にアクセスできません:
みたいな感じになりましたね
2019/10/03(木) 08:37:13.31ID:/bA39X9L
小数の計算がPOSIXで標準化されるって本当?
これどうにかしてほしいんだが

$ 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/
801デフォルトの名無しさん
垢版 |
2019/10/03(木) 09:41:30.99ID:T62xH6xP
言語というよりはどういうライブラリ使っているかの問題だと思うが
2019/10/03(木) 09:46:51.64ID:wbZFe5vy
きちんと0.3返す言語は
分子と分母の2つ記録するから速度は遅くなる

遅いシェルスクリプトの選択した方法は正しい
2019/10/03(木) 09:50:59.70ID:/bA39X9L
いや、誰が浮動小数点数的な答えを求めてるのよ?
誰も数学的に間違った答えなんか求めてないでしょ?
2019/10/03(木) 13:46:15.91ID:oxXSy4fC
固定小数点なんて採用することはないな
提案してみろ、まずはStandard C Libraryとして
2019/10/03(木) 14:46:29.02ID:Fw9k5QN4
>>801
ライブラリというより、内部での浮動小数点の形(float,double,long doubleのどれか。いまどきfloatは無いか)、および、いつ丸めてるかだけじゃね

>>800のも大体は結局はCでの結果でしかないだろう。デフォのdoubleの結果がほとんどだろう
例えば、awkは問題ないように見えるが。2.3 / 0.1 = 23 だが、int(2.3/0.1) = 22 になるのも
806デフォルトの名無しさん
垢版 |
2019/10/03(木) 14:56:31.03ID:gitagY/F
>>805
いや、だからライブラリだろ。
同じ言語でも内部表現に関する決まりのない言語なら例えばBCDで保持するようにしてそれ用のライブラリで計算や10進文字列変換したって構わないんだからな。
2019/10/03(木) 15:03:35.77ID:Fw9k5QN4
そういうある意味特殊なことをしようとする意志のがあればな
結局はCなんだよどういう言語でもああいう部分は。そしてCがそうだからただそうなだけ。わざわざ言うようなことをするのは極めて少ないだろ
浮動小数点がIEEEで決められてる正規なものだし。特殊なプログラムを使えということだよ=シェルとかに求めるのは現在のコンピュータ界隈では無理筋だな
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 +
を抜くと型が整数処理されるというわけのわからん挙動するケースがあったから
別の言語がいいけど
2019/10/03(木) 17:47:54.90ID:vTPkh0Cq
>>807
浮動小数点とIEEE754は同じ意味じゃないから語弊が生まれるよ。
文字コードとUTF-8ぐらいの関係だろう。
そして大抵の小数を扱えるプログラムがCでIEEE754に準拠した浮動小数点による取り扱いをしてるって意見は、全然同意できないな。
2019/10/03(木) 18:03:01.77ID:NYKgu9W2
1. 数学的には正しくない。
2. 速度のために正確さを犠牲にしている。
3. 誰も間違った答えは望んでいない

仕様だから〜とかいう話じゃないんだよね。
本当はみんな正しい答えが欲しい。

シェルスクリプトに速度は重要じゃないんだから
正しい答えのほうが便利だろ
2019/10/03(木) 18:39:51.77ID:K4DSf+RO
ほとんど近似値でたりるし必要なら自分でつくるなりすればとしか思わないよ
2019/10/03(木) 18:40:45.48ID:Fw9k5QN4
>>809
浮動小数点とIEEE754は同じ意味じゃないって?何を言いたいのかわからん
IEEE準拠じゃない独自のがあると?今時はFPUでやってるもんだし、速度なんぞを犠牲にしてまでもそういうのを「わざわざ」をやっている=それがウリになるからすぐに探せるんじゃないかなあ?

>>810
コンピュータサイエンス的にはそんなのはない=シェルスクリプト作る人も、そんな目新しいことをわざわざしないだろうとしか思えんな、いくらそう言っても
2019/10/03(木) 20:14:25.67ID:A9ow2usS
>>811
0.1+0.2が0.3にならなくてもいいよっていう業界を教えてくれ
814デフォルトの名無しさん
垢版 |
2019/10/03(木) 20:20:38.23ID:gitagY/F
適当なところで丸めりゃ良いんだからいいじゃねえか
2019/10/03(木) 20:23:06.87ID:Fw9k5QN4
少数なんて大体でしかないなんて常識だと思ってたのにな。少数使わないでも結局できたりするので、また、固定少数でも結局工夫が必要なのには変わりないので
なんでそんなに少数の正しさに拘っているのだか、どういう業界でそういうのをしかもスクリプトオンリーで書かなきゃならないって想像できないな
2019/10/03(木) 20:30:23.62ID:KR7C+a5e
>>813
必要なら用途に合うもん使えよ
2019/10/03(木) 23:39:56.70ID:5pSilKMJ
気が付いたら少数を使うことがほとんどなくなった
利子の計算ぐらいだが、これは何桁で計算を打ち切るか
あらかじめ決めておく。安易に double とか使わない
2019/10/03(木) 23:43:58.79ID:6kVVAM38
簡単なシェルスクリプトしか書けんが何が覚えとけって言語ある?
s以外のsedの機能をようやく覚えたけどコマンドは文字列操作系で手一杯だわ
やっぱりperlの呪文覚えるしかないか
2019/10/03(木) 23:49:00.65ID:wbZFe5vy
パイプが強烈だから文字列処理に強い perl でしょ
オブジェクト指向はいらない
2019/10/04(金) 00:41:14.19ID:jIZSSFYe
>>818
JavaScript
2019/10/04(金) 00:43:47.35ID:jIZSSFYe
>>817
それな。何桁で計算を打ち切るだと、どこで誤差が出るか想定しやすいが
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は同じものだ、って言ってるぐらいトンチンカンだから
2019/10/04(金) 01:34:09.77ID:N11Kz3K2
>>813
セブンイレブンとか
2019/10/04(金) 01:44:25.75ID:eSKeLXlH
>>818
1-liner、パイプ、CSV・テキスト処理、クローラーなら、可読性が高い、Ruby !

Perl のような謎のような記号は少ない
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が利用されないのも普通という考え方もそうだが
2019/10/04(金) 03:13:49.05ID:gCVTKDJQ
>>825
>Javaがそうでないように書いてあるが
ああ、違ったしつれい。IEEE 754 を必須か
使ってないってどれだ?どういう理由でという思いがあって、おおと思ったんだけど
2019/10/04(金) 04:25:45.39ID:jIZSSFYe
もうさ、ハードで固定小数点数演算できるようにしたほうが良いんじゃね?
時代的にさ
2019/10/04(金) 05:02:19.85ID:Lr70dHDq
BCDはCPUで支援してた(そういう命令があったが)ようだが、無くなったっぽいという
BCDは速度的に有利な側面があるからわざわざそれ専用に用意しなくてもで無くなったかもしれない
2019/10/04(金) 07:56:41.21ID:sZOtDaP2
>>827
お前さんがこだわるほど他の人は必要だと思ってない。あったら便利なケースもあるかも知れんがコストなどに見合わないから誰もやらない。
2019/10/04(金) 08:55:49.66ID:UTOwlhyp
消費税の話もあるし、固定小数点は重要だよ
2019/10/04(金) 11:44:19.51ID:VMw2vpri
固定小数点演算なんて整数演算と同等だからわざわざハードで実装しなくても問題ない
832デフォルトの名無しさん
垢版 |
2019/10/04(金) 14:32:11.23ID:hcjI0QEW
>>818
そのままPerl覚えれば良い。

というのは、昔からあってあちこちで使われており、だいたいの Linux distribution はデフォルトでインストールされるような言語であるため。
インストールや環境整備で悩まなくて済む。後からモジュールを追加するとしても最初からrpmファイルがあったり、なくてもCPANを利用して簡単にインストールできる。
歴史が長く昔から使われて来たのでモジュールも沢山あり、またそれを解説しているサイトも多い。
833デフォルトの名無しさん
垢版 |
2019/10/04(金) 14:36:19.79ID:hcjI0QEW
>>824
知らない言語を見ればどれも謎の記号だらけに見えるとは思うけどね。

まあでもPerlは確かに多いかな。なるべく使わないようにも書けるが。
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
そうか。まあそういうのもある。
2019/10/04(金) 14:43:52.73ID:M3k51a5A
必要ならインストールすれば良いだけだ
2019/10/04(金) 14:59:17.54ID:5wfXTPgW
余計なものに依存したくない
2019/10/04(金) 17:13:04.07ID:/U6oHgYD
そりゃお前の趣味だからな
perlを使いたいならインストールする
当たり前の話だよな
2019/10/04(金) 21:55:54.53ID:a0HWEhLa
perlを使いたいわけじゃないからなぁ
2019/10/04(金) 22:57:45.34ID:eSKeLXlH
Perl, Python2・3 は最初から、入っているけど、
Ruby も、apt で、簡単にインストールできる

ただし、Ruby 2.3 〜 2.6 で、プログラマーが、新しめの書き方をしていた場合に、
古いバージョンで動かないことがあるかも
2019/10/06(日) 09:16:44.91ID:XBuBF2Rc
全員がsudo権限あるわけじゃないしな・・・
2019/10/06(日) 09:44:40.51ID:462kqzf/
perlなんて普通に入ってるからな
Solaris、AIX、HP-UX、FreeBSD、Ubuntu、Centos、Redhat、Fedora
俺が触ってきたシステムではデフォルトで入ってたな
入ってない方が少数派だろ
2019/10/06(日) 11:20:12.25ID:NnE09bAt
少数派だが入ってない
2019/10/06(日) 11:24:56.60ID:kChpVj98
所属する研究室のMFにも入ってねーな。
Bシェルとかは(もちろん)入ってるけど

そういう点で言えばPOSIX準拠のシェルがあるようなシステムにはPerlも入っていて
PerlもないようなシステムにはPOSIX準拠シェルもないのかも知れんw
2019/10/06(日) 12:03:22.79ID:NnE09bAt
だからAlpine linuxにはPOSIX準拠のシェルは入っているが
Perlは入ってないんだって。
いい加減Perl依存やめようぜw
2019/10/06(日) 12:15:46.78ID:rthNV3zo
俺達もそろそろPOSIX汚染から脱却しようぜ
2019/10/06(日) 12:17:46.00ID:NnE09bAt
>>847
じゃあ言い出しっぺのあなたから、POSIXが含まれてる
LinuxやBSDやUnixやMacやWindowsを使うのをやめてください
2019/10/06(日) 12:21:19.21ID:rthNV3zo
そもそも使ってないし
2019/10/06(日) 12:28:35.75ID:NnE09bAt
サーバー側で使われてる
2019/10/06(日) 12:38:20.58ID:462kqzf/
相変わらずPOSIX原理主義者が張り付いてるんだな
日本は信教の自由はあるが強要するのは犯罪だ
他人を巻き込まないで1人でやってろよ
2019/10/06(日) 12:54:03.04ID:NnE09bAt
だからPOSIX原理主義じゃないってw
Alpineはbusybox使ってるからPOSIX未満なんだよ
2019/10/06(日) 13:05:31.69ID:462kqzf/
お前はperl使いたくないんだろ?
お前の自由だし好きにすればいい

それを他人に押し付けるなと言っている

俺は普通にperlを使う
俺の自由だし好きにする

以上
2019/10/06(日) 13:12:15.17ID:rthNV3zo
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
2019/10/06(日) 13:16:18.11ID:NnE09bAt
誰もPerl使うなって言ってないだろ。
Perlが入ってない環境があるという
事実を言ってるんだが
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だけ抜くのも変だしそれ目的なら他のも入ってないのでは?
2019/10/06(日) 21:01:12.68ID:TprJMO+0
まぁないものどうこう言っても始まらない

ただwin のiE6とかのようにubuntu以外は淘汰されていくだろうから
最終的には問題ないんじゃない?
860デフォルトの名無しさん
垢版 |
2019/10/06(日) 21:15:53.96ID:/W6lnfS0
Linuxはdistributionごとに色々目的が違うからPerl入ってないのがあっても特に不思議はない。
AndroidのベースのLinuxにも入ってないし、普通はそこでは必要とされない。
2019/10/06(日) 21:31:35.20ID:1e7RWsdc
AndroidをLinuxとして使ってるのはどれだけいるのかと
2019/10/06(日) 22:18:30.79ID:+aq+gJyQ
それ向けの端末エミュレータとかシェルスクリプト編集実行とかは結構種類あるけどね
割合は少ないだろうね
2019/10/07(月) 02:35:02.37ID:qQU+qyu9
そういう人はperlも必要なら入れるな。perlに限らず
2019/10/07(月) 08:39:27.35ID:4YPUQoiH
>>818 Python やっとけ。 perl は成仏させろ
865デフォルトの名無しさん
垢版 |
2019/10/07(月) 12:58:26.99ID:lSqRbxbA
PerlはCの如くしぶとく残ってしまうと思うなあ。
2019/10/07(月) 14:23:04.89ID:MItW4Ls8
sedやawkを忘れたんで代わりにperlを使うことが結構ある
2019/10/07(月) 15:51:12.82ID:Wc5EJs/z
perl -peをsed代わりに使ってるだけでperl自体には興味ないや
正規表現しか出番ないし使う機会がないんだよね
awkとかgrepとかどうせ他のコマンドも覚えなきゃならんし
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
2019/10/08(火) 15:00:13.27ID:dg9qT1Hg
Perlはsedやawkと同じ位置で見ないとだめだよ
シェルスクリプトを書くときにsedやawkのように使う道具のひとつ
もちろんシェルスクリプトをまるごとPerlのスクリプトに置き換えてもいいけどそれは別の話
Perlを排除するのは武器を一つ捨てるようなもので損してるよ
2019/10/08(火) 15:03:58.28ID:4CpPhkv4
汎用言語としてはpython の時代に移ったかもしれないが
文字処理言語としてはいまだ現役
2019/10/08(火) 15:16:45.62ID:wc9EJfFY
>>869
と言ってもお前、sedやawkが使えないから
perlを使ってるだけやん。
お前の問題であって、perlである必要ないやん
2019/10/08(火) 15:49:08.88ID:dg9qT1Hg
俺当然sedもawkも使えるんだけど?
awkで複雑になる処理をPerlで可読性高く楽に書いてるってだけ
あんたも使える道具をうまく選べばいいんでPerlを知らなくても気にするな
2019/10/08(火) 16:39:54.73ID:9VgyN7XE
「Perlの方が楽に書ける」なんていうのは個人の嗜好に依存してて,ほとんど無根拠に近い。
もしPerlの「素晴しさ」とやらを報しめたいのなら,もっと客観的な事実――導入率・実績云々――を提示したほうがいいよ。

尤も,俺に言わせればAWKのほうが〜Perlのほうが〜なんていう議論とも呼べない喧嘩それ自体くだらねぇけどな
2019/10/08(火) 17:07:54.66ID:uaD7+k1O
>>872 sed もawk も使えるならPython を使えばいいじゃん。
お前がPythonを使えないだけだろ。
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]'
2019/10/08(火) 18:40:06.69ID:4CpPhkv4
gnu sed なら -e すら省けるんだよな
877デフォルトの名無しさん
垢版 |
2019/10/08(火) 18:40:15.32ID:gO+Oxfwr
こうして宗教戦争が始まったのです。
2019/10/08(火) 19:07:13.65ID:/hvysQLZ
pythonはワンラインにはあまり向かんのは同意。
フリーフォーマットじゃないんで当たり前といえば当たり前か。
2019/10/08(火) 19:30:38.22ID:vS76WaY3
宗教戦争は自分の信じるものが正しく、それ以外は認めないという非寛容が原因で始まる
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

杓子定規にするからこうなる
知恵比べはまた別の課題だろうに
881デフォルトの名無しさん
垢版 |
2019/10/11(金) 19:00:05.85ID:QtmRuluN
case $value in
*-*=*-*)
esac

こんなふうに、*が複数ある場合の動きとかちゃんと仕様化されてるの
どのシェルでも同じように動く?
2019/10/11(金) 19:51:09.99ID:5TKzffM3
「されてるの?」
なのか
「されてるの(だ)」
なのか。
883デフォルトの名無しさん
垢版 |
2019/10/11(金) 22:19:25.99ID:EZwTHuUV
>>881
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13_02
884デフォルトの名無しさん
垢版 |
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ってでる

どういうアルゴリズムなのかわからない
2019/10/12(土) 13:05:32.76ID:19ZHiYan
Perlの正規表現なら最長マッチがデフォ
886デフォルトの名無しさん
垢版 |
2019/10/12(土) 17:15:42.03ID:1KIHwFcK
IPアドレスもgreedyが基本だな。
2019/10/13(日) 14:15:24.81ID:wtTHifIn
ワイルドカードもだよね
2019/10/15(火) 20:13:38.52ID:tkdZ32xn
>>884
感覚的に分かりやすい
https://media.theync.com/videos/6/9/0/4/8/6904895d700f71ce3e9.mp4
889デフォルトの名無しさん
垢版 |
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
2019/10/17(木) 16:55:00.31ID:PM8kIYTO
if ls "*.txt" > /dev/null 2>&1
then
echo "OK"
else
echo "NG"
fi

まったくうまくいかない
なぜ単なるファイルの存在確認だけにこんな苦労するのか
2019/10/17(木) 17:04:24.98ID:z1/RyPhF
ファイルの存在確認なら、-fを使えばいいだろ?
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

こんな要領か?
2019/10/17(木) 17:05:47.88ID:z1/RyPhF
あ、ディレクトリに *.txt があるかどうかってことか?
2019/10/17(木) 17:08:50.43ID:PM8kIYTO
>>893
ところがワイルドカード使うと途端に何も引っかからなくなる
2019/10/17(木) 17:09:26.66ID:PM8kIYTO
>>895
そうです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況