シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
探検
シェルスクリプト総合 その29
■ このスレッドは過去ログ倉庫に格納されています
2018/09/21(金) 23:34:47.98ID:/eJt2TVD
571デフォルトの名無しさん
2019/05/18(土) 14:42:25.84ID:jXb4UL4k572デフォルトの名無しさん
2019/05/18(土) 14:46:37.88ID:arw0wGqU 回答するなら、一般的に使われるであろう漢数字の比較も出してくれたらいいな
変な条件内の使い道のないようなのでない。簡単と言われて文句つけられるんだから簡単だろうw
とりあえず >>571の言う通りお手並み拝見
変な条件内の使い道のないようなのでない。簡単と言われて文句つけられるんだから簡単だろうw
とりあえず >>571の言う通りお手並み拝見
573デフォルトの名無しさん
2019/05/18(土) 17:05:06.76ID:524JDXbW >>568
断念も何も、考えてすらいないよ。
「bash でやってみる」がテーマなんだから当たり前だろう?
お前の寝言に付き合ってるわけじゃないんだよ。
一応、やってみた感想を述べるなら
「すげーな bash 。でもやっぱりこれはシェルの仕事じゃないな。」
ってとこかな。
それでも楽しめたし多少なりとも bash を理解できたんだからそれでいいんだよ!
断念も何も、考えてすらいないよ。
「bash でやってみる」がテーマなんだから当たり前だろう?
お前の寝言に付き合ってるわけじゃないんだよ。
一応、やってみた感想を述べるなら
「すげーな bash 。でもやっぱりこれはシェルの仕事じゃないな。」
ってとこかな。
それでも楽しめたし多少なりとも bash を理解できたんだからそれでいいんだよ!
574デフォルトの名無しさん
2019/05/18(土) 17:10:57.93ID:c9LKncuu 回答よろしくってここはお前のお庭じゃねーんだぞw
なにお山の大将気取ってんだ
なにお山の大将気取ってんだ
575デフォルトの名無しさん
2019/05/18(土) 17:28:33.45ID:G+P7ooBK どうやらコンセンサスを得られたようだからな
もう一回いうぞ。漢数字の比較の話は
関係ないし誰も求めてないから黙れ、口を閉じろ
bashとPOSIXシェルの違いがわかってないやつが
いるが、bashは許可していない。
文字列の比較はbashで簡単できる(= シェルスクリプトでやるような仕事)
これをPOSIXシェルだけで外部コマンド呼び出し
なしで出来ないかというのがもともとの質問だ
二度とシェルスクリプト以外の話をするなよ
もう一回いうぞ。漢数字の比較の話は
関係ないし誰も求めてないから黙れ、口を閉じろ
bashとPOSIXシェルの違いがわかってないやつが
いるが、bashは許可していない。
文字列の比較はbashで簡単できる(= シェルスクリプトでやるような仕事)
これをPOSIXシェルだけで外部コマンド呼び出し
なしで出来ないかというのがもともとの質問だ
二度とシェルスクリプト以外の話をするなよ
576デフォルトの名無しさん
2019/05/18(土) 17:31:12.78ID:Qoy0pg1H >>575
だから俺が求めてるんだけども
だから俺が求めてるんだけども
577デフォルトの名無しさん
2019/05/18(土) 17:33:07.99ID:arw0wGqU578デフォルトの名無しさん
2019/05/18(土) 17:40:14.85ID:arw0wGqU あれだけ最後の方で答えないとか粘っていたのに「関係ないし誰も求めてないから黙れ、口を閉じろ」だって...w
脳みそのメモリ足りなさすぎだろうw
シェルスクリプトはグルー言語とも言われ、コマンドを使うのは普通なので、馬鹿な言い分は聞く必要性は全くないな。shell builtin の意味すら知らなさそう
口を開くほど馬鹿を晒す馬鹿って感じ
脳みそのメモリ足りなさすぎだろうw
シェルスクリプトはグルー言語とも言われ、コマンドを使うのは普通なので、馬鹿な言い分は聞く必要性は全くないな。shell builtin の意味すら知らなさそう
口を開くほど馬鹿を晒す馬鹿って感じ
579デフォルトの名無しさん
2019/05/18(土) 17:45:12.45ID:Qoy0pg1H >>575
つうか
>これをPOSIXシェルだけで外部コマンド呼び出し
>なしで出来ないかというのがもともとの質問だ
できない
で終わってんだろこの話
なんでいつまでも出来ない話に粘着してんの?
出来ないことを証明しろとか、キチガイの戯言を言いつのりたいだけなの?
つうか
>これをPOSIXシェルだけで外部コマンド呼び出し
>なしで出来ないかというのがもともとの質問だ
できない
で終わってんだろこの話
なんでいつまでも出来ない話に粘着してんの?
出来ないことを証明しろとか、キチガイの戯言を言いつのりたいだけなの?
580デフォルトの名無しさん
2019/05/18(土) 17:47:31.61ID:arw0wGqU ああ、もしかして変なの二人いたりするのかな??
だとしたら、勘弁してくれ。アホなことを言うのは一人で十分w
だとしたら、勘弁してくれ。アホなことを言うのは一人で十分w
581デフォルトの名無しさん
2019/05/18(土) 18:40:47.80ID:JuXjXOXc582デフォルトの名無しさん
2019/05/18(土) 18:50:12.59ID:jXb4UL4k $ vi 29581.sh
$ sh 29581.sh
29581.sh あいう いろは
ってなったけど?
$ sh 29581.sh
29581.sh あいう いろは
ってなったけど?
583デフォルトの名無しさん
2019/05/18(土) 18:54:36.40ID:JuXjXOXc >>582
な?できたろw
な?できたろw
584デフォルトの名無しさん
2019/05/18(土) 19:25:10.70ID:jXb4UL4k585デフォルトの名無しさん
2019/05/18(土) 19:43:02.94ID:arw0wGqU 実用性の欠けらも無いのが大好きだな
それなりにスキルがあってなぞなぞ好きならまだしも。スキル磨けよw
それなりにスキルがあってなぞなぞ好きならまだしも。スキル磨けよw
586デフォルトの名無しさん
2019/05/18(土) 20:48:31.62ID:3xvYFUWf スキル
587デフォルトの名無しさん
2019/05/19(日) 00:01:51.89ID:40XRh0yv >>580
いや,多分「マジで頭おかしい」のは一人。
もう一人もしくは二人くらい,そいつの煽りに乗せられてちょっとキレ気味なレスバを繰り広げてしまっている。
IDやワッチョイを集団でNG指定できる掲示板だったらよかったんだけどなぁ……。
いや,多分「マジで頭おかしい」のは一人。
もう一人もしくは二人くらい,そいつの煽りに乗せられてちょっとキレ気味なレスバを繰り広げてしまっている。
IDやワッチョイを集団でNG指定できる掲示板だったらよかったんだけどなぁ……。
588デフォルトの名無しさん
2019/05/19(日) 00:14:35.61ID:jyVnriUQ NG指定すると、そいつの書き込みが見えなくなるから、
そいつの書き込みに「下らないレスを付けるやつ」が減る。
そいつの書き込みに「下らないレスを付けるやつ」が減る。
589デフォルトの名無しさん
2019/05/19(日) 03:57:16.75ID:4/AsmfPZ590デフォルトの名無しさん
2019/05/19(日) 09:57:18.67ID:Ia6E6RaB 集団NGというか共有NGはPCだと無縁だからねぇ
591デフォルトの名無しさん
2019/05/28(火) 00:30:04.64ID:WhpCGVUS $ timer.sh 1h30m
引数がこう指定された場合1hと30mはどう捌けばいいんでしょう?
練習で簡易タイマーを作ったんですが時間の複数指定がどうも上手く行かず
この場合は1時間半の指定にしたいんです
一応1.5hのような数値指定にも対応はさせましたが
timer(){
for arg in "$@" ;do
if [[ "$arg" =~ ([0-9]+\.?[0-9]+?)(.?) ]] ;then
num=${BASH_REMATCH[1]}
unit=${BASH_REMATCH[2]}
case "$unit" in
[s])
count=$(bc -l <<< "scale=2;$num")
echo $(date "+%x(%a) %X") 待機:${num}秒
echo $(date "+%x(%a) %X" -d "$count sec") 再開
sleep $count
;;
...
中はこんなcase文が後mとhと続きます
まだ初学段階ですがもっとマシな書き方はありますかね
引数がこう指定された場合1hと30mはどう捌けばいいんでしょう?
練習で簡易タイマーを作ったんですが時間の複数指定がどうも上手く行かず
この場合は1時間半の指定にしたいんです
一応1.5hのような数値指定にも対応はさせましたが
timer(){
for arg in "$@" ;do
if [[ "$arg" =~ ([0-9]+\.?[0-9]+?)(.?) ]] ;then
num=${BASH_REMATCH[1]}
unit=${BASH_REMATCH[2]}
case "$unit" in
[s])
count=$(bc -l <<< "scale=2;$num")
echo $(date "+%x(%a) %X") 待機:${num}秒
echo $(date "+%x(%a) %X" -d "$count sec") 再開
sleep $count
;;
...
中はこんなcase文が後mとhと続きます
まだ初学段階ですがもっとマシな書き方はありますかね
592デフォルトの名無しさん
2019/05/28(火) 01:11:40.50ID:vCL2HYTO echo 1h30m | { echo 'scale=0;'; sed 's/h/*3600+/;s/m/*60+/;s/s//;s/+$//;s:.*:(&)/1:'; } | bc
とかかな。
とかかな。
593デフォルトの名無しさん
2019/05/28(火) 08:21:17.64ID:wDZh4gqJ とりあえずBashの[[コマンドよりsedコマンドを使ったほうがいいとは思う。
594デフォルトの名無しさん
2019/05/29(水) 19:17:53.10ID:S3MJvn1i 最近sedほとんど使わなくなった。
perl -peで代用しちゃう。
perl -peで代用しちゃう。
595デフォルトの名無しさん
2019/05/29(水) 19:32:57.87ID:UDeAAaE3 katochan -pe
596デフォルトの名無しさん
2019/05/29(水) 23:00:56.57ID:7bPFMo5i >>593
sedコマンド使うとめちゃくちゃ遅くなるぞ
sedコマンド使うとめちゃくちゃ遅くなるぞ
597デフォルトの名無しさん
2019/05/30(木) 00:09:39.31ID:nqYCZCfw >>591でめちゃめちゃ遅くなるって、頭大丈夫か?
598デフォルトの名無しさん
2019/05/30(木) 00:17:55.45ID:X2KDG1Lz >>597
10〜100倍ぐらい遅くなるだろうね。
10〜100倍ぐらい遅くなるだろうね。
599デフォルトの名無しさん
2019/05/30(木) 00:44:29.88ID:nqYCZCfw 遅いからそれがなんなの?って意味なんだけど
そんなに意味がない速さにこだわるなら、なんでもかんでもCで書くべきだろうにw
そんなに意味がない速さにこだわるなら、なんでもかんでもCで書くべきだろうにw
600デフォルトの名無しさん
2019/05/30(木) 01:22:28.57ID:X2KDG1Lz 意味があるかどうかは使い方次第
601デフォルトの名無しさん
2019/05/30(木) 02:25:31.12ID:nqYCZCfw 言っている意味がわからん。>>591でって言っているんだけど
602デフォルトの名無しさん
2019/05/30(木) 03:06:10.03ID:S0ORv27w つうかおれは>>597が意味不明だ
603デフォルトの名無しさん
2019/05/30(木) 03:17:49.10ID:nqYCZCfw >>591は何度も繰り返すわけでもなく単なるタイマー起動するまでだけという、また、例の指定時間が1h30mという
起動するのに、0.1秒かかるのと0.01秒もしくは0.001秒でになんの差があるというのか、なんでそんなとこ気になんの?病気じゃないのってとこかな
起動するのに、0.1秒かかるのと0.01秒もしくは0.001秒でになんの差があるというのか、なんでそんなとこ気になんの?病気じゃないのってとこかな
604デフォルトの名無しさん
2019/05/30(木) 19:27:13.10ID:9DfhdkhJ605デフォルトの名無しさん
2019/06/01(土) 00:35:45.39ID:qWUYdvcJ 自分の方が賢いと思って知ったかぶりしてるだけでしょ。子供にはよくあることだよ。
ここには悪質な荒らしも来るんだから、スルーできないと荒らしの思う壺じゃないかな。
ここには悪質な荒らしも来るんだから、スルーできないと荒らしの思う壺じゃないかな。
606デフォルトの名無しさん
2019/06/01(土) 08:13:31.43ID:4/16u2qR >>604
要求される精度は1分程度なんてお題に書いてあるっけ?
要求される精度は1分程度なんてお題に書いてあるっけ?
607デフォルトの名無しさん
2019/06/02(日) 08:32:31.26ID:dZpvnFnK >>606
引数が時・分なんだから、ふつーは秒単位は考慮不要と受け取るやろ
引数が時・分なんだから、ふつーは秒単位は考慮不要と受け取るやろ
608デフォルトの名無しさん
2019/06/02(日) 09:23:20.78ID:aBeO7O7s それは仕様の説明じゃないよねえ
609デフォルトの名無しさん
2019/06/02(日) 20:55:19.29ID:SX5hebJf >>608
それを言うなら,お題には「プログラムの起動が遅かったらだめ」とも書いてねーよw
だからsedを使っても何ら問題ない。
↓こんなのでいいんじゃないかな?
ちょっと抜けがある(..h..mみたいな不正な指定も通してしまう)けど
自分で使うプログラムなら,これくらい入力時に注意できるから
そこまで厳密な判定は要らないと判断した。
sleep $(echo "($(echo '1h30m' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60" | bc -l)
それを言うなら,お題には「プログラムの起動が遅かったらだめ」とも書いてねーよw
だからsedを使っても何ら問題ない。
↓こんなのでいいんじゃないかな?
ちょっと抜けがある(..h..mみたいな不正な指定も通してしまう)けど
自分で使うプログラムなら,これくらい入力時に注意できるから
そこまで厳密な判定は要らないと判断した。
sleep $(echo "($(echo '1h30m' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60" | bc -l)
610デフォルトの名無しさん
2019/06/02(日) 21:19:46.36ID:MyJb8SVO それだと 1.5h とかが変換できない
611デフォルトの名無しさん
2019/06/02(日) 22:34:06.55ID:XxY3JLef >>592でいいんじゃない
612デフォルトの名無しさん
2019/06/03(月) 00:56:39.44ID:amnwC05e613デフォルトの名無しさん
2019/06/03(月) 01:08:52.27ID:0fpHz+xZ Ubuntu 19.04 だと
(standard_in) 1: syntax error
sleep: missing operand
となる。
echo "($(echo '1.5h' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60"
が (1.5h) * 60 になるので bc でエラーになる
(standard_in) 1: syntax error
sleep: missing operand
となる。
echo "($(echo '1.5h' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60"
が (1.5h) * 60 になるので bc でエラーになる
614デフォルトの名無しさん
2019/06/03(月) 03:44:14.58ID:60TnqmAc >>613
ドットは \ でのエスケープが必用なのでは?
ドットは \ でのエスケープが必用なのでは?
615デフォルトの名無しさん
2019/06/03(月) 04:14:04.85ID:xnZUjfNJ >>592は冗長やな
echo 1h30m | { echo 'scale=0;'; sed 's/h/*3600+/;s/m/*60+/;s/s//;s/+$//;s:.*:(&)/1:'; } | bc
echo 1h30m | sed 's/h/*3600+/;s/m/*60+/;s/s/+/;s:.*:scale=0;(&0)/1:' | bc
scale=0はデフォルトだからいらんと思うけど
echo 1h30m | { echo 'scale=0;'; sed 's/h/*3600+/;s/m/*60+/;s/s//;s/+$//;s:.*:(&)/1:'; } | bc
echo 1h30m | sed 's/h/*3600+/;s/m/*60+/;s/s/+/;s:.*:scale=0;(&0)/1:' | bc
scale=0はデフォルトだからいらんと思うけど
616デフォルトの名無しさん
2019/06/03(月) 04:53:12.91ID:xnZUjfNJ >>613
仕様です。
・1h23m45s みたいな秒には対応していません。エラーになります。
・mは必須です。mを省略した場合エラーになります。1.5hの場合は1.5h00mと入力してください。
・1文字のmには対応していません。エラーになります。1mは01mと入力してください。
・mが3文字以上で文字数が奇数の場合は、対応していません。エラーになります。
・mが4文字以上で文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234m の場合 34、12.345の場合45)
・1文字のhには対応しています。
・hの文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234h の場合 34、1.23の場合23)
・hの文字数奇数の場合は、最初の1文字と下位2文字をあわせた、3文字が使用されます。(例 12345h の場合 145、123.5の場合1.5、1.23の場合23)
仕様です。
・1h23m45s みたいな秒には対応していません。エラーになります。
・mは必須です。mを省略した場合エラーになります。1.5hの場合は1.5h00mと入力してください。
・1文字のmには対応していません。エラーになります。1mは01mと入力してください。
・mが3文字以上で文字数が奇数の場合は、対応していません。エラーになります。
・mが4文字以上で文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234m の場合 34、12.345の場合45)
・1文字のhには対応しています。
・hの文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234h の場合 34、1.23の場合23)
・hの文字数奇数の場合は、最初の1文字と下位2文字をあわせた、3文字が使用されます。(例 12345h の場合 145、123.5の場合1.5、1.23の場合23)
617デフォルトの名無しさん
2019/06/03(月) 04:54:33.38ID:xnZUjfNJ618デフォルトの名無しさん
2019/06/03(月) 05:00:32.74ID:xnZUjfNJ 仕様漏れ
・hは必須です。hを省略した場合エラーになります。30mの場合は0h30mと入力してください。
・hは必須です。hを省略した場合エラーになります。30mの場合は0h30mと入力してください。
619デフォルトの名無しさん
2019/06/03(月) 05:42:18.06ID:MigZwPEH なんやこいつ。またか
620デフォルトの名無しさん
2019/06/03(月) 06:51:59.05ID:xnZUjfNJ >>619
なににムカついたの?
なににムカついたの?
621デフォルトの名無しさん
2019/06/03(月) 07:25:22.55ID:amnwC05e >>616
> ・mが4文字以上で文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234m の場合 34、12.345の場合45)
この仕様の意味ってなに?
この仕様を無視して,
「mの前の数字は2桁でなくてはならない」
という仕様に統一すれば,すごく書き易いシェルスクリプトになると思うんだけど。
> ・mが4文字以上で文字数が偶数の場合は、下位2文字のみが使用されます。(例 1234m の場合 34、12.345の場合45)
この仕様の意味ってなに?
この仕様を無視して,
「mの前の数字は2桁でなくてはならない」
という仕様に統一すれば,すごく書き易いシェルスクリプトになると思うんだけど。
622デフォルトの名無しさん
2019/06/03(月) 07:29:35.13ID:amnwC05e >>616
追加で質問。
なんでhやmの前の数字の桁数の偶奇に拘るの?
例えば,
・mの前には二桁の整数(0埋め)しか許されない
・hの前には小数点以下一位の精度で99以下の数しか許されない
という仕様のほうが,仕様も短かいし実装も簡潔になると思うんだけど。
追加で質問。
なんでhやmの前の数字の桁数の偶奇に拘るの?
例えば,
・mの前には二桁の整数(0埋め)しか許されない
・hの前には小数点以下一位の精度で99以下の数しか許されない
という仕様のほうが,仕様も短かいし実装も簡潔になると思うんだけど。
623デフォルトの名無しさん
2019/06/03(月) 08:15:05.64ID:8eXXlkO0 Ruby では、
re = /([^h]+)h([^m]+)m/
# str = "1h0m"
str = "1.5h0m"
md = str.match( re )
# p md[ 1 ], md[ 2 ] #=> capture 部分
begin # 整数じゃなければ、浮動小数点にする
hour = Integer( md[ 1 ] )
rescue ArgumentError
hour = Float( md[ 1 ] )
end
minute = md[ 2 ].to_i # 整数
p hour, minute #=> 1.5, 0
re = /([^h]+)h([^m]+)m/
# str = "1h0m"
str = "1.5h0m"
md = str.match( re )
# p md[ 1 ], md[ 2 ] #=> capture 部分
begin # 整数じゃなければ、浮動小数点にする
hour = Integer( md[ 1 ] )
rescue ArgumentError
hour = Float( md[ 1 ] )
end
minute = md[ 2 ].to_i # 整数
p hour, minute #=> 1.5, 0
624デフォルトの名無しさん
2019/06/03(月) 09:09:22.60ID:8ZNdPBG6625デフォルトの名無しさん
2019/06/03(月) 09:23:57.43ID:amnwC05e >>624
ほーん。*長文*ありがとう。
ほーん。*長文*ありがとう。
626デフォルトの名無しさん
2019/06/03(月) 09:33:21.71ID:0fpHz+xZ >>614
\([0-9.][0-9.]\)*m が入ってしまっているので、
echo "($(echo '1.5h00m' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60"
とかするしかない
echo "($(echo '1.5h' | sed -e 's/\([0-9.][0-9.]\)*h\(\([0-9.][0-9.]\)*m\)\?/\1 * 60 + \3/')) * 60"
なんてすると、 (1.5 * 60 + ) * 60 になって bc で syntax error
\([0-9.][0-9.]\)*m が入ってしまっているので、
echo "($(echo '1.5h00m' | sed -e 's/\([0-9.][0-9.]\)*h\([0-9.][0-9.]\)*m/\1 * 60 + \2/')) * 60"
とかするしかない
echo "($(echo '1.5h' | sed -e 's/\([0-9.][0-9.]\)*h\(\([0-9.][0-9.]\)*m\)\?/\1 * 60 + \3/')) * 60"
なんてすると、 (1.5 * 60 + ) * 60 になって bc で syntax error
627デフォルトの名無しさん
2019/06/03(月) 09:35:00.19ID:z2LdD30j >>626
行き当たりばったりのクソコードなんか相手にしなくていいで
行き当たりばったりのクソコードなんか相手にしなくていいで
628デフォルトの名無しさん
2019/06/03(月) 09:40:07.68ID:z2LdD30j 代わりに俺が同じアプローチのまとなコード書いてやるからよ
echo '1.5h' | sed -E 's/(([0-9.]+)h)?(([0-9.]+)m)?(([0-9.]+)s)?/(\2-0)*3600+(\4-0)*60+(\6-0)/' | bc
(.0を消したければ>>615を参考に /1 すればいい)
echo '1.5h' | sed -E 's/(([0-9.]+)h)?(([0-9.]+)m)?(([0-9.]+)s)?/(\2-0)*3600+(\4-0)*60+(\6-0)/' | bc
(.0を消したければ>>615を参考に /1 すればいい)
629デフォルトの名無しさん
2019/06/03(月) 09:49:10.30ID:0fpHz+xZ やるなぁ、、て言うか相手してやってるやんw
630デフォルトの名無しさん
2019/06/03(月) 09:52:56.88ID:z2LdD30j クソコードはクソコードで終わりでいいって話
あ、クソコードですね♪使い物になりませんね♪でいいってことよ。
いちいちこういう場合にエラーがなりますとかやらなくていい
さっさと廃棄処分してしまおう。
あ、クソコードですね♪使い物になりませんね♪でいいってことよ。
いちいちこういう場合にエラーがなりますとかやらなくていい
さっさと廃棄処分してしまおう。
631623
2019/06/03(月) 11:22:16.99ID:8eXXlkO0 まず設計がおかしい!
バグのほとんどは、設計がおかしいから起きる
時間は、0〜24 の整数のみ。
分は、0〜60 の整数のみ
最大で、24時間までとか
整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!
バグのほとんどは、設計がおかしいから起きる
時間は、0〜24 の整数のみ。
分は、0〜60 の整数のみ
最大で、24時間までとか
整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!
632デフォルトの名無しさん
2019/06/03(月) 11:25:36.69ID:8qtiF3dA633デフォルトの名無しさん
2019/06/03(月) 11:26:56.98ID:amnwC05e >>632
やめたれw
やめたれw
634デフォルトの名無しさん
2019/06/03(月) 12:27:27.29ID:3fU/jk6b つまりrubyを使うと統合失調症になってしまうということ?
635デフォルトの名無しさん
2019/06/03(月) 13:18:07.10ID:amnwC05e そんなことには、ならない!
Rubyは、すばらしい言語
Rubyは、すばらしい言語
636デフォルトの名無しさん
2019/06/03(月) 13:28:47.52ID:3fU/jk6b やっぱりなってしまうんだね…
637623
2019/06/04(火) 05:26:37.80ID://1XsOfQ 整数に変換できなければ、浮動小数点に変換するとか、明らかにおかしいでしょ?
だから、質問者に言われた通りに書いたら、おかしいと言うこと!
>>631
>時間は、0〜24 の整数のみ。
>分は、0〜60 の整数のみ
多くの言語が採用しているのは、
時間は、0〜23 の整数のみ。
分は、0〜59 の整数のみ
色んな言語の、Time クラスのメソッドを参照
だから、質問者に言われた通りに書いたら、おかしいと言うこと!
>>631
>時間は、0〜24 の整数のみ。
>分は、0〜60 の整数のみ
多くの言語が採用しているのは、
時間は、0〜23 の整数のみ。
分は、0〜59 の整数のみ
色んな言語の、Time クラスのメソッドを参照
638デフォルトの名無しさん
2019/06/04(火) 05:55:02.35ID:oQKNEIyc >>623「整数に変換できなければ、浮動小数点に変換する」
↓
>>631「整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!」
↓
>>637「質問者が整数に変換できなければ、浮動小数点に変換するって言った!浮動小数点でスレを検索してみろ!」
【検索結果】
623 名前:デフォルトの名無しさん[sage] 投稿日:2019/06/03(月) 08:15:05.64 ID:8eXXlkO0 [1/2]
631 名前:623[sage] 投稿日:2019/06/03(月) 11:22:16.99 ID:8eXXlkO0 [2/2]
637 名前:623[] 投稿日:2019/06/04(火) 05:26:37.80 ID://1XsOfQ
↓
>>631「整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!」
↓
>>637「質問者が整数に変換できなければ、浮動小数点に変換するって言った!浮動小数点でスレを検索してみろ!」
【検索結果】
623 名前:デフォルトの名無しさん[sage] 投稿日:2019/06/03(月) 08:15:05.64 ID:8eXXlkO0 [1/2]
631 名前:623[sage] 投稿日:2019/06/03(月) 11:22:16.99 ID:8eXXlkO0 [2/2]
637 名前:623[] 投稿日:2019/06/04(火) 05:26:37.80 ID://1XsOfQ
639デフォルトの名無しさん
2019/06/04(火) 06:05:44.33ID:oQKNEIyc >>637
俺はシェルスクリプトもRubyも上級者なんだよなぁ(苦笑)
$ irb
irb(main):001:0> require 'active_support/time'
=> true
irb(main):002:0> 1.5.hours
=> 5400.0 seconds
俺はシェルスクリプトもRubyも上級者なんだよなぁ(苦笑)
$ irb
irb(main):001:0> require 'active_support/time'
=> true
irb(main):002:0> 1.5.hours
=> 5400.0 seconds
640デフォルトの名無しさん
2019/06/04(火) 11:07:03.94ID:P6ocUs46 >>638
草ァ!
草ァ!
641デフォルトの名無しさん
2019/06/04(火) 23:40:36.15ID:91A1BNDa >>591
最初に引数を"h"→"h "、"m"→"m "に変換するといいんじゃないかな
最初に引数を"h"→"h "、"m"→"m "に変換するといいんじゃないかな
642デフォルトの名無しさん
2019/06/05(水) 00:03:31.85ID:uJguGtrO 小数点を含んだ時刻表記(単位は時・分)を秒数に正規化する,みたいな話かね
643デフォルトの名無しさん
2019/06/05(水) 01:44:13.04ID:Rs8bMd2A 練習のために書いてて、うまい書き方は無いかという話だった気がするのだが…
644デフォルトの名無しさん
2019/06/05(水) 12:04:44.96ID:UTQhx3T7 だよな、単に。sedならという応えも直後にあっての
変なのが変な話に変えてる
変なのが変な話に変えてる
645デフォルトの名無しさん
2019/06/05(水) 12:17:13.51ID:HgsnwJuZ 質問者「今から1時間後とか、あと1.5時間後とかにも対応してみました」
Ruby厨「整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!」
Ruby厨「時間は0〜24の整数のみ! 午前1時30分のことを1.5時とか言わない!」
Ruby厨「整数に変換できなければ、浮動小数点に変換するとか、こんなおかしな設計はない!」
Ruby厨「時間は0〜24の整数のみ! 午前1時30分のことを1.5時とか言わない!」
646デフォルトの名無しさん
2019/06/05(水) 15:13:01.25ID:ufQ3ijM/ バッシュでファイル名がアスキーコードが判定する方法教えて下さい一番簡単に
アスキーコードはUTF8の一部でもあるのでnkfは確認出来ないとおもいました
アスキーコードはUTF8の一部でもあるのでnkfは確認出来ないとおもいました
647デフォルトの名無しさん
2019/06/05(水) 16:22:42.00ID:ujLKUPuk if iconv -t ASCII <<< "$filename" > /dev/null 2>&1; then
必要なら -f を。必要なら ASCII 以外の他のエンコーディングを
必要なら -f を。必要なら ASCII 以外の他のエンコーディングを
648デフォルトの名無しさん
2019/06/05(水) 16:47:06.73ID:HgsnwJuZ >>646
この程度でbash専用にする必要ない。nkfもiconvも遅い。
case $filename in
*[!a-z]*) # a-z以外の文字がある
*) # a-zのみ
esac
あとはASCIIのみになるようにすればいい
POSIX文字クラスを使うと楽
https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions#Character_classes
制御コード入れたいのかにもよるのとASCIIコード以外にあてはまるかどうか調べてないが
例えば [![:cntrl:][:print:]] とかかな? 最悪一文字ずつ書けばいいだろう。
この程度でbash専用にする必要ない。nkfもiconvも遅い。
case $filename in
*[!a-z]*) # a-z以外の文字がある
*) # a-zのみ
esac
あとはASCIIのみになるようにすればいい
POSIX文字クラスを使うと楽
https://en.wikibooks.org/wiki/Regular_Expressions/POSIX_Basic_Regular_Expressions#Character_classes
制御コード入れたいのかにもよるのとASCIIコード以外にあてはまるかどうか調べてないが
例えば [![:cntrl:][:print:]] とかかな? 最悪一文字ずつ書けばいいだろう。
649デフォルトの名無しさん
2019/06/05(水) 17:15:11.07ID:xkVLsoK0650デフォルトの名無しさん
2019/06/05(水) 17:16:08.94ID:HgsnwJuZ >>649
何もおかしなところ無いんだが?
何もおかしなところ無いんだが?
651デフォルトの名無しさん
2019/06/05(水) 17:18:19.69ID:xkVLsoK0 正しく動くASCII判定のをどうぞ
652デフォルトの名無しさん
2019/06/05(水) 17:21:46.42ID:HgsnwJuZ あぁ、なにか言い返したかっただけかw
653デフォルトの名無しさん
2019/06/05(水) 17:27:42.29ID:xkVLsoK0 やはりRuby厨と変わらないw
正しく動くのを示せばいいだけでしょ、勝手にa-zだけじゃなく。それがちゃんとASCIIと判定できるなら
正しく動くのを示せばいいだけでしょ、勝手にa-zだけじゃなく。それがちゃんとASCIIと判定できるなら
654デフォルトの名無しさん
2019/06/05(水) 17:30:08.86ID:HgsnwJuZ 質問者じゃないお前と問答する意味ないよ
655デフォルトの名無しさん
2019/06/05(水) 17:31:24.15ID:xkVLsoK0 横槍はするが、自分に横槍すんなか。やはりRuby厨と変わらないw
656デフォルトの名無しさん
2019/06/05(水) 17:34:27.22ID:HgsnwJuZ よっぽど悔しかったんだろうなぁ(笑)
657デフォルトの名無しさん
2019/06/05(水) 17:37:01.79ID:xkVLsoK0658デフォルトの名無しさん
2019/06/05(水) 17:39:55.68ID:HgsnwJuZ だからお前と問答する必要はない話だよねw
質問者にヒントを出した。あとは自分でやるか、"質問者"が泣きつくかどうかだろ
なんでお前が泣きついてるんだ?えーんえーん(笑)
質問者にヒントを出した。あとは自分でやるか、"質問者"が泣きつくかどうかだろ
なんでお前が泣きついてるんだ?えーんえーん(笑)
659デフォルトの名無しさん
2019/06/05(水) 17:43:17.72ID:xkVLsoK0 ヒントを出した、泣きつくかどうか
よくそんな言葉吐けるな。ちょっと前のいつものヤツか、その子供のような最後といい、よく恥ずかしげもなく書けるなw
よくそんな言葉吐けるな。ちょっと前のいつものヤツか、その子供のような最後といい、よく恥ずかしげもなく書けるなw
660デフォルトの名無しさん
2019/06/05(水) 17:47:03.77ID:HgsnwJuZ やっぱりいつもの悔しい思いをしたやつだったかw
661デフォルトの名無しさん
2019/06/05(水) 17:51:21.47ID:oTS9vdrC いつものヤツだったのは正解らしいww
662デフォルトの名無しさん
2019/06/05(水) 17:56:56.88ID:HgsnwJuZ いつもの悔しい思いをしたやつってのは正解らしいwww
663デフォルトの名無しさん
2019/06/05(水) 17:58:17.08ID:oTS9vdrC は?お前は敵がいっぱいだなwww
664デフォルトの名無しさん
2019/06/05(水) 17:59:16.05ID:xpgfEjrk お前ほどじゃないよw
665デフォルトの名無しさん
2019/06/05(水) 18:01:04.69ID:ye33y5kG bash や zsh の場合、locale 依存なんだなぁ
$ bash -c 'LC_CTYPE=C; case 1 in *[![:cntrl:][:print:]]*) echo 'x';; *) echo 'y';; esac'
x
$ bash -c 'LC_CTYPE=ja_JP.UTF-8; case 1 in *[![:cntrl:][:print:]]*) echo 'x';; *) echo 'y';; esac'
y
bash で [:ascii:] を使う場合には locale は関係なし
$ bash -c 'LC_CTYPE=C; [[ 1 = *[![:ascii:]]* ]] && echo x || echo y'
x
$ bash -c 'LC_CTYPE=ja_JP.UTF-8; [[ 1 = *[![:ascii:]]* ]] && echo x || echo y'
x
$ bash -c 'LC_CTYPE=C; case 1 in *[![:cntrl:][:print:]]*) echo 'x';; *) echo 'y';; esac'
x
$ bash -c 'LC_CTYPE=ja_JP.UTF-8; case 1 in *[![:cntrl:][:print:]]*) echo 'x';; *) echo 'y';; esac'
y
bash で [:ascii:] を使う場合には locale は関係なし
$ bash -c 'LC_CTYPE=C; [[ 1 = *[![:ascii:]]* ]] && echo x || echo y'
x
$ bash -c 'LC_CTYPE=ja_JP.UTF-8; [[ 1 = *[![:ascii:]]* ]] && echo x || echo y'
x
666デフォルトの名無しさん
2019/06/05(水) 18:05:10.12ID:xpgfEjrk >>665
そうそう。だから面倒なので「ASCIIコード以外にあてはまるかどうか調べてない」し
「最悪一文字ずつ書けばいい」
あとbashやzshって限定しなくて良いよ。全部そうだから
> bash で [:ascii:] を使う場合には
[:ascii:]はPOSIXクラスじゃない
そうそう。だから面倒なので「ASCIIコード以外にあてはまるかどうか調べてない」し
「最悪一文字ずつ書けばいい」
あとbashやzshって限定しなくて良いよ。全部そうだから
> bash で [:ascii:] を使う場合には
[:ascii:]はPOSIXクラスじゃない
667デフォルトの名無しさん
2019/06/05(水) 18:12:43.44ID:9iVEjLSM なんで誰も求めていないPOSIXや速さにそんなにこだわるんだかな
>>665はちゃんと前段と分けて「bash で [:ascii:] を使う場合」とも言っている=「bashで」と言っているのに、なんでそうも自分は知ってるを出したいんだか
>>665はちゃんと前段と分けて「bash で [:ascii:] を使う場合」とも言っている=「bashで」と言っているのに、なんでそうも自分は知ってるを出したいんだか
668デフォルトの名無しさん
2019/06/05(水) 18:15:02.41ID:ye33y5kG ところが Ubuntu の dash(conform with the POSIX 1003.2 and
1003.2a specifications for the shell)は依存しないのよね…(上の例ではどちらも x を返す)
1003.2a specifications for the shell)は依存しないのよね…(上の例ではどちらも x を返す)
669デフォルトの名無しさん
2019/06/05(水) 18:15:24.53ID:oTS9vdrC 他人のレスを読めないのに妄想だけは
いつものことか
いつものことか
670デフォルトの名無しさん
2019/06/05(水) 18:15:31.51ID:xpgfEjrk 「求めていない」と明言していない以上、
「求めていない」なんてお前が断定するなってことだよ。
「求めていない」なんてお前が断定するなってことだよ。
671デフォルトの名無しさん
2019/06/05(水) 18:17:47.05ID:9iVEjLSM 読めない人だねえ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【芸能】俳優・野村宏伸 テレビドラマの制作費やギャラの現状訴え 「比べものにならない位、今は低くて…」 [冬月記者★]
- 【悲報】大阪万博行かないのに万博に文句言い、兵庫県民でもないのに斎藤知事に文句言うガイジ お前らだけじゃなかった…orz [363226198]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
- 【悲報】自民党のヒゲ、外務省局長と中国高官の写真にブチギレwwwwwwwwwwwwww [834922174]
- 竹田恒泰「中国からの攻撃、効いてない! 効いてないよ!」 [592058334]
