1 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:34:47.98 ID:/eJt2TVD.net] シェルスクリプトに関する総合スレッドです。 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 前スレ: シェルスクリプト総合 その28 mevius.5ch.net/test/read.cgi/tech/1532397676/
280 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 14:09:25.74 ID:mImzJn5T.net] >>265 お前には言ってない >>266 タイミング的に子プロセスが受け取るのかシェルが受け取るのかってことなんだけどね。コマンドを実行中なのかシェルが実行中なのか set -e を使うからややこやしい、シグナルの基本をわかってないんじゃないんだろなとしか思えんけど。コマンドがINTシグナルで終了した場合、シェルが擬似的にシグナルハンドラ呼んでるっぽいかな(もしくは自らにINTシグナル出してるのかな?) 何したいのか知らんけど、set -e 使わずに、INTシグナルハンドラでexitすればいいんじゃないの
281 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 14:29:06.39 ID:6byp94bf.net] >>279 その理屈はわかるんだけどねぇ まず必ずゾンビになるんじゃなくてたまになる。だからタイミングの問題 CTRL-Cを押した時になる。通常の処理では発生しない。 CTRL-Cのハンドラでは作業ディレクトリの削除を行っている。 ワーカー(& によるバックグラウンド処理)が複数ある。サブシェルを使ってるせいか 同じな名前のプロセスがたくさんいる。ワーカーを生成した後はwait(引数なし)を実行している。 ゾンビの存在は確認しているが、誰がゾンビになったのかその親が誰かはよくわかっていない。 (たまにしかならんので探しにくい)ただし内部で呼び出してるtrやmvがゾンビになったこともある。 CTRL-Cのハンドラでは作業ディレクトリの削除の他、多数生きてるワーカー(労働者)を 皆殺しにするためにジェノサイド(kill -TERM 0)を発動している。 ただし労働者を消した後に、労働者の作業場(作業ディレクトリ)も片付ける 必要があるので自分だけは死なないようにしている。(trap ':' TERM) 実際にはもっと複雑だけど、死なないのは自分だけなはずなんだけどな バグでゾンビになったこともあるので記憶が曖昧だけど (バグを修正した今は)zshだけしか発生しなくなっているかもしれない。 もしかしたらzsh内蔵のkillにバグがあって殺す順番とか 子供が生まれるタイミングで発生してるとか? でもまあなんだかんだでシンプルにしていったら ゾンビの発生率も下がってきたし諦めるかな
282 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 14:40:48.63 ID:6byp94bf.net] うーん、おかしい。trってワーカー(バックグラウンドプロセス)の 中で使っているとはいえ、パイプの右側でしか使ってないんだが?
283 名前:279 mailto:sage [2019/04/13(土) 15:17:27.06 ID:blG/UTRx.net] 漏れにも、ゾンビになるプログラムとならないプログラムの、違いがわからない ゾンビになるメカニズムを検索してみれば?
284 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 15:21:25.04 ID:6byp94bf.net] 「ゾンビになるメカニズム」で検索してみた 管理テーブルにデータが残ってるだけなら 消す方法(もしくは隠す方法)があってもいいと思うんだがねぇ
285 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:27:29.48 ID:i5T2wQ7z.net] >>284 wait()すりゃいいんだよ。 普通はinitが拾ってくれるんだが、誰にでも好き嫌いはあるということだろう。
286 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 16:33:30.75 ID:mImzJn5T.net] >>280 >コマンドがINTシグナルで終了した場合、シェルが擬似的にシグナルハンドラ呼んでるっぽいかな(もしくは自らにINTシグナル出してるのかな 違うか。control-cでのINTシグナル送るやつの文献ってどこぞにあるかなあ
287 名前:279 mailto:sage [2019/04/13(土) 17:05:08.41 ID:blG/UTRx.net] Ctrl+C が、子プロセスやパイプラインのジョブグループに、 どのように伝達されていくかとか、難しい
288 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:21:22.57 ID:6byp94bf.net] いろいろ間違っていた。訂正する。 まずCTRL-Cは関係なさそう。実は正常な動作でも(プログラム実行中に)ゾンビができることがあった。 ゾンビができると今は無限ループ状態になるので気づいたが、ちょっと前まではプログラムの構造上、 ゾンビを放置して正常終了していたと思う。zshではあまりテストしていなかったから気づかなかった。 バックグラウンドプロセスが関係あるかないかはよくわからない。 何回か動かしているがバックグラウンドプロセスを使用しない場合は今の所再現していない。 あとなんかWSLとのからみな気がしてきた。 速度が違うから断定は出来ないがLinuxだと再現しない。 今の所、WSL環境にて、zshで、バックグラウンドプロセスを使用し、 その中でパイプを使った処理を行うと、まれにゾンビプロセスができる。
289 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:27:02.88 ID:i5T2wQ7z.net] >>286 シグナル一般の話ではなくてttyの話だったら、詳解Unixに載ってた気がするが、 当然そのくらいは読んでるよね。
290 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:36:42.95 ID:mImzJn5T.net] >>287 ,289 なるほど すまん、読んでない。遠い記憶では読んでいたような気もするが忘れたので読んでない
291 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:43:50.87 ID:6byp94bf.net] 再現コード出来た。このコード、なにか問題有る? これをWSL+ZSHで実行すると、人目につかず永遠とbcコマンドで1+1を計算し続け、 CTRL-Cで停止するときにbcコマンド含めたプロセスグループ全体をkillする(はず) これをやるとbcコマンドがゾンビ化する。(Linuxだとしない) #!/usr/bin/zsh int() { echo kill kill -TERM 0 echo killed exit 1 } trap 'int' INT trap ':' TERM worker() { while :; do echo '1+1' | bc > /dev/null done } for i in $(seq 16); do worker & done echo wait wait
292 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:44:42.87 ID:6byp94bf.net] やっぱり詳解Unixは買わねばいかんか・・・
293 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:54:41.69 ID:6byp94bf.net] dash、bashでは再現しない。kshでも再現した。 いずれもWSLのみ。これもうWSLの問題だろ・・・ きっとWSLのバグをzshとkshが踏んじゃったんだな
294 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 17:55:48.18 ID:6byp94bf.net] これ関連してるのかな? Why are there many zombie process in windows subsystem for linux(WSL)? How to kill them totally? https://superuser.com/questions/1419292/why-are-there-many-zombie-process-in-windows-subsystem-for-linuxwsl-how-to-ki
295 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 18:09:57.29 ID:6byp94bf.net] 次のWindows 10のリリースで治ってんじゃないですかねー もういいか Zombie zsh processes left behind that consume 8 % CPU each https://github.com/Microsoft/WSL/issues/3940 Killing a defunct zombie leaks the zombie process forever https://github.com/Microsoft/WSL/issues/3741 https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-18267 Fix issue where zombie process may not be reaped and remain indefinitely.
296 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 14:12:09.49 ID:uU4FE3J6.net] read -r text <<HERE printf [%s]\n it's a "s'm'a'l'l 'w"o'r"l'd" HERE $text ↓出力 [it's] [a] ["s'm'a'l'l] ['w"o'r"l'd"] この仕様、うまくすればなにかに使えそうな気がしている。 文法エラーにもならずevalとはまた違った挙動だ。 とゆうかどういう仕様なんだろう?
297 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 17:50:16.12 ID:21MN1CXY.net] $ cat b.pl #!/usr/bin/perl -w print("$_\n") foreach @ARGV; $ cat c.sh #!/bin/bash IFS=+ ./b.pl a b c ./b.pl a+b+c while read -r v ; do $v ; done <<EOF ./b.pl a b c ./b.pl+a+b+c EOF $ ./c.sh a b c a+b+c ./c.sh: 行 6: ./b.pl a b c: そのようなファイルやディレクトリはありません a b c $ # うん、なかなか面白いね。どうしてこうなるかは man に書いてあるよ。 $ # 簡単に言うと、単語の分割というのは最初に行われるものと $ # 変数が展開された後に行われるものがあるんだ。 $
298 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 17:41:03.59 ID:ZXb+3x2v.net] シェルスクリプト(対話操作含め)が実行される手順って結構複雑な割に他の言語よりずっと単純だから 理論から実践(この場合はシステム処理とか?)への、かなり良い足掛かりになるよね。
299 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 01:20:29.51 ID:Has+aDs1.net] www.sample/{01..10}.jpg これが書かれたtxtを読み込んでブレース展開して出力する方法ないです? $ printf "%s\n" < foo.txt 適当にこうやっても上手く行かなくて
300 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 01:26:56.31 ID:S3Y2FMky.net] ないです
301 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 01:40:13.99 ID:0pnJkrzy.net] eval $(echo -n 'echo '; cat foo.txt) とか?
302 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 02:15:47.05 ID:FhppS/ri.net] sh << END printf "%s\n" $(cat foo.txt) END
303 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 02:24:15.12 ID:FhppS/ri.net] echo "printf '%s\n' $(cat foo.txt)" | sh でよかった
304 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 08:49:56.51 ID:Hx8930Ug.net] eval 'echo '$(<foo.txt)
305 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:59:40.33 ID:Has+aDs1.net] >>304 内側のリダクレクトが何かと思えば $(cat file)の変形があったとは 複数行も対応してるしこれなら行けそうですわ
306 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 12:47:47.19 ID:Hx8930Ug.net] ごめん、もうちょっとシンプルに書けた。 eval echo $(<foo.txt)
307 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 02:03:07.74 ID:KyfckjPA.net] >>306 これいいね! ……正直,実際に使う機会は少なそうだけど シェルの処理をしっかり把握してないと思い付かない回答。
308 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 11:54:54.98 ID:c8JzoHXu.net] 例えばさ、 bash -n -c 'a=(a b c)' ↑これはbashとして正しい文法だけどさ sh -n -c 'a=(a b c)' ↑これは文法エラーになるじゃん? 実行していなくても これみたいに、実行してないのにあるシェルではOKで 別のシェルではNGみたいな文法って他に何かしらない?
309 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 12:22:26.76 ID:KyfckjPA.net] >>308 君と似た例ではあるが; $ bash -n -c '%=a' $ sh -n -c '%=a'
310 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 15:47:58.78 ID:8XF5nS5J.net] eval 'printf "%s\n" '$(cat foo.txt) これprintfをシングルクォートで囲まないと改行されないのね www.sample/01.jpgnhttp://www.sample/02.jpgnh みたいな結果ばかりでちょっと悩んだ zsh使ってないけどこれはforの後の二重括弧に空白が必要だとかなんとか {には空白がいるのにfor((が通るbashの方が不自然なのか
311 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 18:28:36.64 ID:i3ajZQCG.net] export -p と export の違いってなに?
312 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 18:36:38.02 ID:oyNQbI7u.net] \n の処理をだれがいつやらかすのかってとこかな。printfにやらせたいprintfに \n のまま渡さなくてはという感じ eval printf "'%s\n'" $(cat foo.txt) eval printf '%s\\n' $(cat foo.txt)
313 名前:デフォルトの名無しさん mailto:sage [2019/04/22(月) 23:58:52.60 ID:htDMK2AO.net] そもそもなぜ eval を使うのかというと、コマンドラインの解釈において ブレース展開がコマンド置換より前だから コマンド置換してからブレース展開するためには eval を使って解釈を最初からやり直す必要があるためで しかしながら printf と "%s\n" にはその必要がないのだから、つまり printf "%s\n" $(eval echo $(<foo.txt)) でいいんじゃないかな。
314 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 08:44:15.00 ID:q7kwqzjj.net] ダブルクリックで実行できるのとできないシェルスクリプトの違いって一体 whileとcaseで簡易メニュー作ってたんだけどダブルクリックしても画面に何も出ない上に 起動されたbashがCPUがかなり食ってた 無論端末から実行はしっかり通る ls結果を外部保存するような単純な奴はダブルクリックでも正常通りなんだけど
315 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 13:31:54.32 ID:zhMneqp1.net] シェルスクリプト関係ない
316 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 18:19:48.00 ID:/EY0Mv6x.net] >>311 マニュアル嫁 つーか実行すれば一目瞭然だぞ ……と思ってやってみたらexportはオプション成しで起動すると export -pと同じ動作をするんだね
317 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 18:22:18.78 ID:/EY0Mv6x.net] >>314 使ってるGUIシステムがX11なら x-terminal-emulatorなんかを使って仮想端末を立ち上げてからじゃないと メニューみたいな端末出力を必要とするものは期待した通りに動かないよ。
318 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 20:23:01.28 ID:zVNwrrWL.net] >>316 そうマニュアルに書いてあるだろう。なんのボケ?w
319 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 21:51:37.02 ID:zhMneqp1.net] 模範解答 export -p がどう表示されるかはPOSIXで規定されていますが、 export がどう表示されるかは未定義です。(同じとは限りません) つまり、exportがどうなるかはシェル毎に異なります。 pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#export 更にexport -pはbashではPOSIXに反してdeclareで表示されます。 これらは各シェルのマニュアルには書いていません。
320 名前:デフォルトの名無しさん mailto:sage [2019/04/23(火) 22:49:27.06 ID:/EY0Mv6x.net] 模 範 解 答
321 名前:デフォルトの名無しさん [2019/04/24(水) 08:22:12.86 ID:6O+4Q2Ek.net] bashで abc*が展開できると出来ないときがあって それをテストするのに [ "abc*" = 'abc*' ] とやりたいのにできません どうやったらできますか?
322 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 17:25:06.62 ID:bQUFU5ml.net] >>321 何がどうできないのかよく分からないけどシングルクォートとダブルクォートは 処理が違うから「=」にならないと思うよ シングルクォート側は文字列なので「abc*」っていう文字列になるけど ダブルクォート側は解釈されるので「*」にあたるものが存在しないと何もない 状態なので「abc」って文字列になるんじゃないかな
323 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 17:40:21.19 ID:uakSx5ac.net] は?
324 名前:デフォルトの名無しさん [2019/04/24(水) 17:42:31.98 ID:6O+4Q2Ek.net] abc*が展開できない時はそのままabc*になるのでそう思って書いてみました
325 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 18:28:22.30 ID:6T3A9gnL.net] abc* というファイルが実際にあるというというのは除外でいいのね?
326 名前:デフォルトの名無しさん [2019/04/24(水) 18:32:06.10 ID:6O+4Q2Ek.net] ええです
327 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 18:45:29.21 ID:6T3A9gnL.net] ダブルクォートで囲んでも囲んじゃうとglob展開は行われない変数などのようには。(>>322 見るとデフォでは??展開できるなんかあっったかなあ) [ "$(echo abc*)" = "abc*" ] とかかな any='abc*'; [ "$(echo $any)" = "$any" ]
328 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 19:43:12.00 ID:uakSx5ac.net] 日本語がダメな奴と日本語がダメな奴が 初心者同士の会話をしてる。 ついていけない。
329 名前:デフォルトの名無しさん [2019/04/24(水) 19:56:20.38 ID:6O+4Q2Ek.net] >>327 ありがとうございます echoを使わずできたらお願いします 無理なら諦めます
330 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:25:30.92 ID:6T3A9gnL.net] >>328 答えてやれよ。マウントとりではなくて。ふたレスもするくらいな (>>322 は正直お前の>>323 と同じだが、それだけじゃなというのと、もしかしてもしかしてもしかしてだけど)
331 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:29:18.25 ID:6T3A9gnL.net] >>329 echoを使わずの条件がわからない。他にもやり方があるけど、複数行にだったり stackoverflowではなんか凝ったのより ls が人気みたい。見た目でわかりやすからかな
332 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:08:22.56 ID:uakSx5ac.net] 何をやりたいのかわからない。 端末にecho *って入力して あぁ、展開されましたねって 確認すりゃいいだけじゃんか なんで[ ]とか使うのか
333 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:16:12.73 ID:6T3A9gnL.net] >>332 お前が何言っているのかわからない シェルスクリプトで判断してなにかその後にする部分のことを聞いてきているのだろう。その判断するとこだけを書いているのだろうと読むと思うけど (日本語どうの言うなら、他人の日本語より自分の日本語を疑った方がいいようなw)
334 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:29:00.43 ID:6T3A9gnL.net] >bashで abc*が展開できると出来ないときがあって abc* としても、該当するものがあってglob展開する場合と、該当するものがなくてglob展開しない(出来ない=globのまま)ときがあって >それをテストするのに 展開できなかった場合はマズいので(とかなんとで)、それをテストするのに [ "abc*" = 'abc*' ] >とやりたいのにできません としてみましたが、思ったようになりません だよ。たぶんw
335 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:15:49.65 ID:kFXKi6KY.net] Ruby で該当するファイル数を数えれば? それが、0 なら、該当なし p Dir.glob( 'C:/Users/Owner/Documents/*.txt' ).length #=> 0
336 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:19:13.46 ID:uakSx5ac.net] >>333 お前はさ、なぜこういう質問に至ったかまで考えられてないんだよ。 意味不明なんだよ。 >>334 そう思うやろ?だったら意味不明って気づかなきゃ。 > 展開できなかった場合はマズいので つまり、現時点で「展開できてる」はずなわけだよ。 展開の仕方を知ってる。 なのに展開できないと言ってる。意味不明だろう?
337 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:37:08.62 ID:6T3A9gnL.net] >>336 なにを言っているのかさっぱりわからん。意図目的とすることがな。いや後半はまったくわからん、お前の頭の世界の話だけのようで。ちょっと怖いぞw ただマウントとりたいだけというのはわかるぞw
338 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:39:35.88 ID:6T3A9gnL.net] 読めなかったらのをごまかすためにむちゃくちゃ言っているんだな うん。そゆことにしとこ。でないとアレだなということで
339 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:49:53.80 ID:uakSx5ac.net] だーかーらー、いつもどおりのやってるやり方で展開して それをチェックすればいいだけだろと
340 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:04:43.57 ID:6T3A9gnL.net] ぜんぜん「だーかーらー」でもなんでもないな。お前の言っていることはわからん どうも自称初心者じゃない自称日本語ダメじゃない人の自分の脳の世界でなんか言ってるとしか見えない お前の言う初心者の ID:6T3A9gnL は >>327 ので不満があるようだがそれでも答えになってるらしいぞ お前の変な言い分はお前のためでしかなく、他に対する目的も意味もない。マウントとりたいだけのお前には意味があってもな。マウントとりたいから延々続くのか?
341 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:06:17.58 ID:6T3A9gnL.net] 誤 お前の言う初心者の ID:6T3A9gnL は 正 お前の言う初心者の ID:6O+4Q2Ek は なんかすまん
342 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:14:58.44 ID:uakSx5ac.net] > お前の言う初心者の ID:6T3A9gnL は >>327 ので不満があるようだがそれでも答えになってるらしいぞ だからなんなのか知らんが、お前ら、いつもどおりの展開ってecho使ってんのか? 使ってないだろ。いつもどおりの使えばいいだけなのに、 悩んで(?)別の方法模索してるから、意味不明だって言ってるんだよ。 質問者にも回答者にも
343 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:22:52.75 ID:6T3A9gnL.net] むちゃくちゃww 自分で>>332 って書いているのに 言うにことかいて「だからなんなのか知らんが」だってwwwもろマウントとりたいだけ、マウントとり失敗してわけわからんだけだな
344 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:54:51.80 ID:uakSx5ac.net] 展開されるかどうかの確認はそれでいいし、 プログラムでならいつもどおりのやり方で展開すればいい 何をやりたいのかわからないのに、どちらの話かわかるわけないだろ どちらにしろ「は?」なわけだが
345 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:00:15.44 ID:SQ7d9Ur4.net] すでにお前に対して「は?」だよ
346 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:02:54.32 ID:zUwJ78d6.net] っていうか、正しいやり方知らんのか? echo使って検査するんじゃないぞ(それじゃできない)
347 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:05:34.10 ID:zUwJ78d6.net] それじゃできないっていうのはコレな > abc* というファイルが実際にあるというというのは除外でいいのね? abc* というファイルが実際にあることも考慮するやり方をするべき そうすれば正解にたどり着く
348 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:16:01.39 ID:2wE9GZDh.net] ダメな場合もあるのはわかって聞いているんだけど。本人がいいっていったからそれに合わせてだよ だれかみたいに「すべき」とか強要するつもりも知識自慢したくてたまらないとかもないからな。その最後のといい、なんか偉そうにしたいのね、質問者の意図とか読まずに、知識自慢するためのw質問者の他の情報も引き出そうともせずに shopt使うとかいう知識自慢だったら笑うぞ。別にabc*という実ファイルがあった場合でものshopt使わずにの方法もあるけどな
349 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:21:59.00 ID:zUwJ78d6.net] 本当に差があるやつとの会話は疲れるw > bashで abc*が展開できると出来ないときがあって 展開でするやり方知っってるよな?それ使え > それをテストするのに 展開できないことのテストはいらん お前が知ってるはずの、展開するやり方を使って、 -f (もしくは -d や -e 等)で、その名前の そのファイルが実査に有るかどうかを調べるだけ shoptとかもしらん
350 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:22:22.15 ID:zUwJ78d6.net] 実査 -> 実際
351 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:34:11.93 ID:2wE9GZDh.net] やっぱり、まだわかってないんだな、「展開〜」という質問を shoptとかもしらん.... -f とか、まさかそんな「当たり前の」こと言い出すとは まさか「その程度」だとは思わなかったわっ。なんだろこれw
352 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:03:28.37 ID:zUwJ78d6.net] × shoptとかもしらん ○ shoptとかもいらん なんで当たり前の正解を言ったら お前悔しがってんの?w 知識自慢したのお前じゃん そして「は?」の意味わかっただろ。 全く見当違いのことをやろうとして、 全く見当違いの解答をしてるんだよ。 クソガキどもが
353 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:09:13.03 ID:2wE9GZDh.net] そりゃ、お前が悪い。shoptもな なんかもったいぶってるだけでだからな。自覚がないのか?さんざん偉そう俺は初心者じゃないってだけの、質問から外れたことばっかり言っている お前が>>349 を>>352 で書けば終わってることだからな 俺は別にお前みたいな知識自慢したくてなんてないぞ。おまえがさんざん俺偉いというだけのような&「そうすれば正解にたどり着く」とかうやむやなこと言うからだろうに とうとう、「クソガキども」のお言葉いただきましたっ。なんだじじいかw自称他人を自分より劣ると言える
354 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:11:10.67 ID:2wE9GZDh.net] 誤 お前が>>349 を>>352 で書けば終わってることだからな 正 お前が>>349 を>>332 で書けば終わってることだからな
355 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:15:09.23 ID:zUwJ78d6.net] だから何をやりたいのかわかったのは それ以降のレス読んでからだろうが 意味不明だし、馬鹿がクソな回答しやがるし ほんと低い
356 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:17:21.45 ID:2wE9GZDh.net] >だから何をやりたいのかわかったのは イミフ。おまえもたいがい日本語ダがメだぞ?w いままでのレスの数々でも やっぱり「俺高いお前低い」とは言いたいのね。なんでそう言いたいのか自分に問いてみような
357 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:19:37.90 ID:2wE9GZDh.net] ああ、「クソガキども」のお言葉いただいたので(なんでそんなこと言いたくなったのか自分に問いてみようなw)、もういいや
358 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:20:59.82 ID:zUwJ78d6.net] > なんでそう言いたいのか自分に問いてみような 邪魔だからだな。頭悪そうな兄ちゃんがきて 頭悪そうな会話をしてる。そんな感じだ。
359 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:23:14.93 ID:o77IOYp5.net] そして誰もいなくなった
360 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 04:25:44.56 ID:Q6RVSnnY.net] 質問する側が馬鹿すぎると馬鹿を引き寄せるだけなんだよなあ。 まず、まともな質問をするために man を読もうよ。
361 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 09:00:30.11 ID:XBKhyEHe.net] よくわからんが、なんで -f が出てくるんだ? ファイルの有無が問題じゃないんだろう? globしたかしないかが問題なんだろう?
362 名前:デフォルトの名無しさん [2019/04/25(木) 10:40:29.00 ID:xhj9dxYD.net] ""で囲むと展開されなくて""で囲まないと複数の引数として認識するから出来ないので諦めますね
363 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 10:43:57.02 ID:zUwJ78d6.net] >>361 globでファイル名に展開されるかどうかは ファイル(ディレクトリなども含む)の有無で決まるから
364 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:49:51.00 ID:XBKhyEHe.net] >>363 こういう奴がセキュリティホールを作り込むのかね
365 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:29:45.25 ID:wpotMNKo.net] そもそも、ファイル名に、半角英数字、- _ (base64url encoding)以外を使うような、 システムを作る奴が悪い さらに、Windows では、大文字小文字だけが異なる、ファイル名も作れないし。 例、aB, Ab
366 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 14:58:23.69 ID:zUwJ78d6.net] >>364 セキュリティホールを作るのは、 お前のように正しく理解してないからだよ。 問題が有るというのなら言ってみな。
367 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 16:49:38.33 ID:hZ9DlonC.net] なぜ自信満々なのか、馬鹿の頭の構造はわからないな。
368 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 20:07:34.96 ID:zUwJ78d6.net] 反論がないから
369 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 03:55:26.84 ID:N1bTr2ZN.net] 馬鹿なレスだな
370 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 04:25:43.51 ID:Y1o8+v/L.net] シェルの歴史に詳しくなれるサイト見つけた https://www.in-ulm.de/~mascheck/
371 名前:デフォルトの名無しさん [2019/05/03(金) 15:34:52.90 ID:m+FxQhlt.net] bashのさ、<() ってさ、sort test.txt みたいなのを sort <(cat test) って書けるから リダイレクトを受け付けないコマンドに、一時ファイル作らずに渡せると思ったけど、 そうとはかぎらないよな?例えば、同じファイルを二回読み込むとかさ そういうのってやっぱ一時ファイル作らないと無理だよな?
372 名前:デフォルトの名無しさん [2019/05/03(金) 18:08:45.95 ID:/bmAVHAq.net] >>371 パイプの概念がないのか? sortコマンドもどこでどうなったのかを気にしないで使うというのもよくわからない。
373 名前:デフォルトの名無しさん [2019/05/03(金) 21:10:21.19 ID:m+FxQhlt.net] >>372 知らんがな。俺に言うなや。 そのツールが、そうなってるんだから sortコマンドはただの例だからこれ以上追求しなくていい てか、複数ファイルを入力したり複数ファイルを出力したりすることだって あるんだから、必ずパイプで解決できるわけじゃない diffコマンドとかそうだろ
374 名前:デフォルトの名無しさん [2019/05/03(金) 21:28:48.60 ID:wXl0ssRE.net] 同じ出力のデータを分けて処理することは可能だが、なぜ魔法文にこだわっているのかがわからない。
375 名前:デフォルトの名無しさん [2019/05/03(金) 21:31:24.78 ID:m+FxQhlt.net] >>374 その話は関係ないから打ち切ろう あるツールが「引数で指定した同じファイルを二回読込みしている」 そういう処理をしている。(そのツールの修正は不可能) ここまでは理解しているかな?
376 名前:デフォルトの名無しさん [2019/05/03(金) 21:32:23.63 ID:m+FxQhlt.net] まあ結論としては無理ってわかってんだけどさ bashの拡張を持ってしても
377 名前:デフォルトの名無しさん mailto:sage [2019/05/03(金) 21:35:32.54 ID:m+FxQhlt.net] あ、一時ファイル(FIFOファイル含む)作りたくないっていうのが最終的な希望ね。 メモリだけ(tmpfsや類似のメモリベースのファイルシステムやブロックデバイス除く)でやりたい。 無理ってわかってるけど。
378 名前:デフォルトの名無しさん [2019/05/03(金) 23:01:24.06 ID:wXl0ssRE.net] ただの無知か。
379 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 09:14:36.29 ID:HnSBFy63.net] >>371 例がないと何を言っているか意味がよく分からない。 teeとかファイルに出力しながら標準出力にも出力しているけど、 そのようなことがbashだけで表現できればOK?
380 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 09:40:10.00 ID:eyQzK648.net] >>379 「リダイレクトを受け付けないコマンド」例 ファイル内容と行数を表示するために「同じファイルを二回読み込む」 これは "例" でありこのコマンドの内容についてのレスは不要 実際には中身はわからずバイナリで修正不可能なものとする。 #!/bin/sh cat "$1" wc -l "$1" ↑このコマンドに対して、一時ファイル(FIFOファイル含む)を作らないでデータを渡す
381 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 09:47:38.10 ID:HnSBFy63.net] >>380 ファイルを作らないでメモリだけでっていうことなら、 ↓こんな感じならOKなの? dat=$(cat $1)
382 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 09:57:48.90 ID:eyQzK648.net] >>381 それでもいいよ 何をしたいのかわからんけど kono-comand ? ↑?の部分になんて書く?
383 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:01:46.67 ID:eyQzK648.net] 明らかに読み間違えてるレスがくると疲れるんで、 一時ファイルを使った場合の例も書いておくは これは例なんで、この例を修正しろなんてレスは不要 generate-text > /tmp/test.txt kono-comand "/tmp/test.txt" この一時ファイル test.txt を作りたくない なんで?とかいう質問も不要
384 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:05:16.07 ID:HnSBFy63.net] >>383 ホントに意味が分からないんだは、 上の例でもこれでいいんじゃないのと思っちゃう。 generate-text | kono-comand だからこれを直せってほうが意味通じるかも。
385 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:05:29.00 ID:ic6F2rX1.net] 条件の説明が下手すぎ
386 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:07:09.78 ID:eyQzK648.net] >>384 本当に疲れる。 >>371 を読み返せ。 > リダイレクトを受け付けないコマンドに、一時ファイル作らずに渡せると思ったけど、 > リダイレクトを受け付けないコマンド > リダイレクトを受け付けないコマンド > リダイレクトを受け付けないコマンド パイプもリダイレクトだ。
387 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:08:50.78 ID:eyQzK648.net] っていうか、 generate-text | kono-comand kono-commandの内容は上に書いたとおり↓で > #!/bin/sh > cat "$1" > wc -l "$1" 修正不可能つってるんだから これでは動きません。の一言でよかったなw >>385 動かないコードを書いる時点で説明の問題じゃない。
388 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:09:39.22 ID:ic6F2rX1.net] >>384 コマンドが標準入力をサポートしてない場合のだろう、よってパイプが使えない 標準入力サポートしていてパイプでいいだろうというコマンド例を挙げてくるとか説明が下手すぎなだけだろうなw
389 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:10:34.97 ID:eyQzK648.net] >>388 あ、回答者の説明が下手すぎってことかw
390 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:10:41.51 ID:ic6F2rX1.net] いつもの自信過剰な人か
391 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:11:55.19 ID:eyQzK648.net] >>390 ん?今回はへこましてみるか? 俺「やっぱできないよなぁ」 → 俺もできないと思うよ。 で終わればいいやん。
392 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:15:59.85 ID:ic6F2rX1.net] 標準入力もデバイス(ファイル)としてある
393 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:16:50.69 ID:eyQzK648.net] https://hogem.hatenablog.com/entry/20090530/1243612485 > diff -u hoge.out fuga.out > diff <(./hoge) <(./fuga) よくこんな感じで、一時ファイルを作らない例として挙げられてるけど、 これって、diffが引数のファイルを一度しか読み込まないという 内部実装に依存しているってことなんだよな。 だから複数回読み込んでいたりすると使えない。 一度しか読み込まないという仕様はないだろうから たまたま使えたということ。
394 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:17:09.83 ID:eyQzK648.net] >>392 知ってる
395 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:23:29.06 ID:ic6F2rX1.net] ストリームでいいのかファイルでなければならないのか条件説明がやっぱり下手すぎ 標準入出力は普通は単なるストリームで戻ったりはしたない、一気通貫するだけ 2度読み??とかストリームでないなら当然ファイルにしなければならないだろうに、あたりまえだろう。結局あたりまえのことを確認したいだけなのか。例で上げてくるのがストリームでいいだろうのを出すから下手なんだよ
396 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:24:53.38 ID:eyQzK648.net] >>395 これを満たせばいいだけ。 いい加減にしろや 「リダイレクトを受け付けないコマンド」例 ファイル内容と行数を表示するために「同じファイルを二回読み込む」 これは "例" でありこのコマンドの内容についてのレスは不要 実際には中身はわからずバイナリで修正不可能なものとする。 #!/bin/sh cat "$1" wc -l "$1" ↑このコマンドに対して、一時ファイル(FIFOファイル含む)を作らないでデータを渡す
397 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:26:01.06 ID:eyQzK648.net] はは。catとwcでファイル読み込みを二回実行してるから、 ストリームでは無理なことにも気づいてない(笑) マヌケか
398 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:26:07.92 ID:ic6F2rX1.net] それが下手だと言ってもわからないんだな
399 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:27:31.82 ID:eyQzK648.net] >>398 どこが下手なのか言ってないからね。 ストリームで不可能な例を見て、 これストリームで可能じゃん!って 言ってしまった時点で、お前の負け
400 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:30:40.72 ID:eyQzK648.net] 俺が言いたいのは、 > diff <(./hoge) <(./fuga) が使えるかどうかは、コマンド(この場合はdiff)の 内部実装に依存するから、試してみるまでわからないということ、 ファイルじゃないと二度読みはできないとかそういう話はしてない。 <(./hoge)が使えるかどうかは、コマンド次第という話をしてる どんなコマンドだって、一度読むだけで実装することは可能(メモリに読み込めばいい) だから、<(./hoge)が使えるかどうかはやってみるまでわからんのだよな。 という話をしてる。
401 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:31:29.76 ID:ic6F2rX1.net] >>384 というように、 cat "$1" | wc -l したいわけじゃないんだよ。後は後出しでいろいろ言ってくるだろう
402 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:32:27.87 ID:eyQzK648.net] ということを、とあるファイルを引数にするコマンドを 一時ファイルを作らないでやろうとして あれ?となった次第。 そのコマンド、一度だけしか読まないでできるように思えるんだけどな。
403 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:33:45.55 ID:eyQzK648.net] > cat "$1" | wc -l > したいわけじゃないんだよ。 >>380 を読めばそれぐらいわかる
404 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:36:59.95 ID:ic6F2rX1.net] catやwcなんぞ各コマンドの入力ソースはストリームでしかないので、できないことはないけどな。お前には教えないがw
405 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:38:28.81 ID:eyQzK648.net] >>404 > これは "例" でありこのコマンドの内容についてのレスは不要 あーあ、やっちまった。コマンドの内容にレスしたね(笑)
406 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:40:23.60 ID:ic6F2rX1.net] >>405 >>385 そう言うなら、当然これを受け入れろな
407 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:40:24.64 ID:eyQzK648.net] 例だから、実際にはcatやwcが使われているわけじゃないのに catやwcなんぞとかwww
408 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:40:58.27 ID:eyQzK648.net] >>406 自分の理解力のなさを自覚するように。 こっちは、ちゃんと例を出してる。 その例を満たせなかった時点でアウト
409 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:44:00.90 ID:ic6F2rX1.net] コマンドの入力がストリームでいいならできる、他のなんか知らんコマンドがストリームじゃダメならできないでしかない。使用するコマンドによるでしかないだろにアホか
410 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:53:18.47 ID:eyQzK648.net] > コマンドの入力がストリームでいいならできる、 そんな当たり前のことを言われてもなw 重要な点は、本来、該当のコマンドは「ファイルを指定する」前提であるということ diffコマンドみたいにな。 それを半ば無理やり、ストリームから読み込ませる文法が bashにはあるということ > diff <(./hoge) <(./fuga) だが、本来コマンドは、ファイル名を指定させる以上、ストリームを前提としているとは限らないわけで、 そういうコマンドに、bashを使って無理やりストリームで渡して動いたとしても、 それはたまたま動いただけいう話をしてる。 (コマンドの仕様で規定されてないならば)実装依存なので動くという前提に立ってはならない。
411 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:54:58.56 ID:eyQzK648.net] あ、bashの拡張なんて俺は普通使わんけどなw 今回はたまたま利用可能だったってだけで
412 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:55:49.57 ID:ic6F2rX1.net] では、なにを当たり前のことを延々と言っているのかね? というような、お前のレスはこんなんばっかだな
413 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:56:37.92 ID:eyQzK648.net] >>412 俺「やっぱできないよなぁ」 → 俺もできないと思うよ。 で終わればいいやん。
414 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 10:58:48.90 ID:eyQzK648.net] 基本的に、俺が出した結論が正解なので、 最後の最後でここで他になにかないのか?と聞いても 新しいことは何もわからないというのがいつものパターン
415 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 11:00:31.72 ID:ic6F2rX1.net] そうならないのは、 >>385 ,390 (実は答えは別にもあるのだが、お前には教えないw)
416 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 11:03:05.91 ID:eyQzK648.net] >>415 その答えは俺も知ってるけどな(笑)
417 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 11:04:39.93 ID:eyQzK648.net] そういや前にも、 他にもやり方あるけどお前には教えてやんないよ。ばーかばーか みたいなレスあったなw 結局やり方なかったみたいだけどw あ、今回は有るんですよね?知ってます。だって俺も知ってるからね!
418 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 11:05:09.17 ID:ic6F2rX1.net] ほほー、よくわからんが解決してなにより めずらしくちゃんと終えられてよかったよ
419 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 11:10:16.30 ID:eyQzK648.net] ほほー(笑)
420 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 20:25:44.11 ID:ifYIOobQ.net] やれやれ、何事かと思ったら…… 「そのツール」って何だよ。それを書かない時点で相手にする価値が無いゴミだろ。
421 名前:デフォルトの名無しさん mailto:sage [2019/05/04(土) 21:30:57.91 ID:eyQzK648.net] ツール名聞いたって何の意味もないくせにw じゃあgccとでも言っておこうか。一例として
422 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 00:09:54.93 ID:v1YqewFO.net] チンピラ以下の馬鹿だな
423 名前:デフォルトの名無しさん [2019/05/05(日) 01:20:16.53 ID:kL93aIfd.net] なぜかシェルスクリプトのスレなのにコマンドの世界の話をしてますね。
424 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 01:55:58.03 ID:BV99JfCS.net] シェルスクリプトはコマンドを使って組むもの。基本的なものですらコマンドだったり。 コマンドの動作がどうだから入出力がどうだからで組みもするもんだろう。
425 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 04:20:05.42 ID:HUD7QHVp.net] いつものってことはこいつは常連客なのか ちゃんとコテ付けてくれないと困るなぁ
426 名前:デフォルトの名無しさん [2019/05/05(日) 13:10:37.85 ID:ptHRpxR9.net] >>424 プログラムですよ?
427 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 19:12:30.87 ID:Cb4SiVVu.net] なにいってんのこいつ
428 名前:デフォルトの名無しさん mailto:sage [2019/05/05(日) 22:39:57.67 ID:QbHFXZX+.net] やっぱワッチョイ導入しよーぜ
429 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 01:18:15.86 ID:VbOWf0H0.net] やはりそれが目的ですか
430 名前:デフォルトの名無しさん mailto:sage [2019/05/06(月) 13:16:54.80 ID:UGCyqtDX.net] どういうこと?
431 名前:デフォルトの名無しさん [2019/05/11(土) 15:19:07.32 ID:D877RybE.net] [ string1 > string2 ] ってPOSIX準拠じゃないよね? POSIXの範囲で(外部コマンドを使わずに) 文字列の大小の比較ってできたっけ?
432 名前:デフォルトの名無しさん [2019/05/12(日) 02:15:32.41 ID:0u/cIV/f.net] >>427 おまえさ、ここはシェルスクリプトのスレッドだぞ? コマンド一発にしたいのなら、そういうコマンドを作ればいい。 UNIXの考え方は、あるものの組み合わせで実現できるものはそうすべきだが、無理やりあるものの組み合わせでやれなんて言ってない。
433 名前:デフォルトの名無しさん [2019/05/12(日) 02:18:26.37 ID:0u/cIV/f.net] >>431 どの言語でも、単に文字列を比較する構文は、どういう比較なのか分かりにくいから、まともなプログラマは避ける。
434 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 02:27:43.60 ID:4QpB/QIi.net] これまた変なのが現れたな
435 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:06:37.34 ID:VATOmp33.net] >>431 外部コマンドを使わないという制約なら ↓こういうのでは string1='aaaaa' string2='bbbb' [ ${#string1} -le ${#string2} ]
436 名前:デフォルトの名無しさん [2019/05/12(日) 19:46:54.27 ID:OoMn1CYl.net] 「文字列の比較」ができるという触れ込みで文字数の比較を している言語やデータベースなんか聞いたこと無いなw 普通は現在のロケールに従って文字列の照合順序で比較のことを言う 百歩譲っても文字コード順とか
437 名前:デフォルトの名無しさん [2019/05/12(日) 20:03:17.70 ID:0u/cIV/f.net] >>436 文字列が同じ値かどうかの比較を忘れているのか?
438 名前:デフォルトの名無しさん [2019/05/12(日) 22:54:11.71 ID:OoMn1CYl.net] 変なやつだったようだな
439 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 23:14:03.33 ID:VATOmp33.net] 文字数の比較じゃないのか。申し訳ない、俺の読解力が不足してた。 後学の為に訊いておきたいんだけども、文字列の比較がごく普通にできるプログラミング言語って例えばなんだろう。
440 名前:デフォルトの名無しさん [2019/05/12(日) 23:17:08.65 ID:OoMn1CYl.net] C言語
441 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 03:22:38.08 ID:gc1mJry9.net] 構文的ならC言語はできない方かなあと 他の(スクリプト)言語でいくらでもあるからそちらでもよかったんじゃないかと
442 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 04:40:36.56 ID:0SM9rJAF.net] >>439 ベイシック