Bashでプログラミング [転載禁止]©2ch.net (267レス)
Bashでプログラミング [転載禁止]©2ch.net http://mao.5ch.io/test/read.cgi/linux/1443885102/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
2: ピラフ [] 2015/10/04(日) 00:17:45.41 ID:KQhWWZXy bashはUnixシェルです。 bashを使ったシェルスクリプティングテクニックや プログラミングについて和気あいあいとそしてほのぼのと語り合いたいと 思ってこのスレを建てました。よろしくお願いいたします。 http://mao.5ch.io/test/read.cgi/linux/1443885102/2
3: login:Penguin [sage] 2015/10/04(日) 02:17:29.14 ID:B+hGdmlE シェルスクリプトクソめんどくせぇ。 どこでも動くように作る必要があるものだから 仕方なく作ってるけど、パスにスペースが入ったらとか、 くそめんどくせぇ http://mao.5ch.io/test/read.cgi/linux/1443885102/3
4: login:Penguin [sage] 2015/10/04(日) 03:41:56.50 ID:2ljDEtpK もうスクリプトはpythonでよくね? Bashが動くような環境ならpythonがほぼ間違いなく動くから、制限だらけのBashで書く理由が思いつかない。 http://mao.5ch.io/test/read.cgi/linux/1443885102/4
5: ピラフ [] 2015/10/04(日) 03:50:20.09 ID:KQhWWZXy >>3 ピラフも昔はシェル間の互換性とかに気を配ってたよね。 でもある日悟ったんだよね、超めんどくせえと。 それ以来bashで動けばなんでも良いって思うようになった。 パスにスペースが入ることにも目をつぶるようになった。めでたしめでたし。 http://mao.5ch.io/test/read.cgi/linux/1443885102/5
6: ピラフ [] 2015/10/04(日) 03:54:46.40 ID:KQhWWZXy >>4 pythonいいよねpython。 一貫性があってシンプルでわかりやすい。 黒魔術perlとは違うよね。 コマンドを実行するだけとか、他のプログラムをキックするだけとか そういうのだったらシェルスクリプトでいいんだけど、構造化が 必要なほどのプログラムになるときつい。 http://mao.5ch.io/test/read.cgi/linux/1443885102/6
7: ピラフ [] 2015/10/04(日) 03:57:02.21 ID:KQhWWZXy ノウハウが好きな人にはbashはたまらないと思うんだよね 垂涎ものだよ、たとえバッドでも。バッドでも! http://mao.5ch.io/test/read.cgi/linux/1443885102/7
8: login:Penguin [sage] 2015/10/04(日) 04:03:08.09 ID:B+hGdmlE パスにスペースが入ってるとパスが引数として解釈されたり、 最悪の場合、脆弱性につながりそうで怖いんだが。 http://mao.5ch.io/test/read.cgi/linux/1443885102/8
9: login:Penguin [sage] 2015/10/04(日) 04:07:46.40 ID:B+hGdmlE >>7 > たとえバッドでも。バッドでも! [ コマンドの存在が、一番のバッドだけどなw http://mao.5ch.io/test/read.cgi/linux/1443885102/9
10: ピラフ [] 2015/10/04(日) 04:17:59.52 ID:KQhWWZXy >>8 わかる。-とかもだよね。これオプションじゃないのよー!みたいな。 シェルを広く公開するならそういうのにも対応しといたがいいのだろうけど、 内輪で使うならまあないっしょ大丈夫っしょ問題ないっしょ!と念じて目をつぶって地蔵の ふりをするのもありだと思うよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/10
11: ピラフ [] 2015/10/04(日) 04:18:35.71 ID:KQhWWZXy >>9 マジで!?ピラフそのコマンド使ったことない。ちょっと調べてみる。 http://mao.5ch.io/test/read.cgi/linux/1443885102/11
12: login:Penguin [sage] 2015/10/04(日) 04:21:31.28 ID:B+hGdmlE > そのコマンド使ったことない。 ナイスジョーク http://mao.5ch.io/test/read.cgi/linux/1443885102/12
13: ピラフ [] 2015/10/04(日) 04:23:19.15 ID:KQhWWZXy [はtestコマンドだったのか。てっきりbashのsyntaxだとばかり思ってた。 http://mao.5ch.io/test/read.cgi/linux/1443885102/13
14: ピラフ [] 2015/10/04(日) 04:25:01.42 ID:KQhWWZXy >>12 ?d(゚∀゚d)ォゥィェ!! http://mao.5ch.io/test/read.cgi/linux/1443885102/14
15: login:Penguin [sage] 2015/10/04(日) 04:28:26.27 ID:B+hGdmlE [ "$var" = "test" ] 意味 コマンド名 ・・・ [ 第一引数 ・・・ "$var" 第二引数 ・・・ = 第三引数 ・・・ "test" 第四引数 ・・・ ] 考えてみよう! [ "$var" = "test"] なぜ "test" と ] の間のスペースをなくすとエラーになるのか? [ $var = "test" ] なぜ 変数名を "" で括るのが一般的なのか? http://mao.5ch.io/test/read.cgi/linux/1443885102/15
16: ピラフ [] 2015/10/04(日) 04:34:56.30 ID:KQhWWZXy >>15 おもしろい、考えてみる! http://mao.5ch.io/test/read.cgi/linux/1443885102/16
17: login:Penguin [sage] 2015/10/04(日) 04:44:01.35 ID:B+hGdmlE なぜ他の言語のように if [$var="test] then fi とシンプルにかけないのか? [ コマンドを考えついた奴は、俺頭いい!って思っちゃったんだろうな。 そのせいでシェルスクリプトの構文を改善する機会がなくなった。 シェルスクリプトは変数への代入はできるが変数の参照はできない。 できるのは変数の中身の文字列展開だけ。 それがパスにスペースが有る場合の問題にまで影響してるのさ。 くっそ言語、くっそ言語、 http://mao.5ch.io/test/read.cgi/linux/1443885102/17
18: login:Penguin [sage] 2015/10/04(日) 05:08:00.09 ID:Fdr2poSK しょーもないことをドヤ顔で語ってるな http://mao.5ch.io/test/read.cgi/linux/1443885102/18
19: login:Penguin [sage] 2015/10/04(日) 05:14:24.14 ID:B+hGdmlE >>18 このスレに書き込まずにはいられなかったんなら お前も参加しろよw http://mao.5ch.io/test/read.cgi/linux/1443885102/19
20: ピラフ [] 2015/10/04(日) 05:33:56.23 ID:KQhWWZXy >>18 みんなでここをいいドヤ顔スレにしよう(提案(前向き(全力(社畜 http://mao.5ch.io/test/read.cgi/linux/1443885102/20
21: login:Penguin [sage] 2015/10/04(日) 11:26:14.16 ID:q4z/9k1Q どうしてピラフはわざわざ、プログラム板から、 Linux板にまで出てきたのですか? 皆で、オブジェクト指向のPowerShellへ、移行しませう。 他には、VBScript, JScript もあるし .NETの世界は、極楽ですぜw http://mao.5ch.io/test/read.cgi/linux/1443885102/21
22: login:Penguin [sage] 2015/10/04(日) 12:27:39.97 ID:O5AlniCT これがあるんだからスレ立てるじゃねえの糞が シェルスクリプト総合 その25(c)2ch.net http://peace.2ch.net/test/read.cgi/unix/1439563321/ http://mao.5ch.io/test/read.cgi/linux/1443885102/22
23: ピラフ [] 2015/10/04(日) 13:01:31.07 ID:KQhWWZXy >>22 糞じゃない、ピラフだ。 UnixってFreeBSDとかそういうのじゃないの? ピラフLinux使ってるの。だからスレ建てたの。許して。 http://mao.5ch.io/test/read.cgi/linux/1443885102/23
24: ピラフ [] 2015/10/04(日) 13:09:32.23 ID:KQhWWZXy >>21 VBScriptはピラフが一番好きなプログラム言語だよ。 いいよねーあれ。Linuxでも使えたら良いのにって毎日思ってるよ。 Linux環境で動く.NET Coreが発表されて.NETはますます勢いを増しそうだよね。 PowerShellと.NET Coreはピラフも興味を持っています。今後ともよろしくお願いいたします。 http://mao.5ch.io/test/read.cgi/linux/1443885102/24
25: ピラフ [] 2015/10/04(日) 20:31:29.91 ID:KQhWWZXy ピラフさあ、困ってることがあって 標準出力と標準エラー出力を同じファイルに書き出して、 かつ、標準エラー出力のみを画面に出力したいんだよね。 そのやり方がどうしてもわからなくて教えて欲しいんです。 教えてください、おねがいします。 http://mao.5ch.io/test/read.cgi/linux/1443885102/25
26: login:Penguin [sage] 2015/10/04(日) 22:30:31.51 ID:cHujBtP3 SNSじゃねぇんだから、>>22のスレに移動しろよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/26
27: ピラフ [] 2015/10/04(日) 22:47:52.26 ID:KQhWWZXy >>26 >>22はUnix板だよ。 アメリカの議会で税金を話し合ってるときに 中国の税金はどうとか言うのは場違いだよね。 ピラフはUnix使ってないし。ここがSNSじゃないとも思ってないし。 >>22には移動しないし。 http://mao.5ch.io/test/read.cgi/linux/1443885102/27
28: login:Penguin [sage] 2015/10/04(日) 22:52:50.99 ID:mhzx8YQK おのれは誰やねん http://mao.5ch.io/test/read.cgi/linux/1443885102/28
29: ピラフ [] 2015/10/04(日) 23:11:54.27 ID:KQhWWZXy >>28 お前が誰だ。なんだペンギンて。なめてんのか。 http://mao.5ch.io/test/read.cgi/linux/1443885102/29
30: login:Penguin [] 2015/10/04(日) 23:31:51.40 ID:jHPuSLta vipq2が高ければこのスレ落とすんだけどなぁ 無念 http://mao.5ch.io/test/read.cgi/linux/1443885102/30
31: ピラフ [] 2015/10/04(日) 23:33:29.89 ID:KQhWWZXy >>30 どうしてそんな酷いことするの? ピラフのこと嫌いなの? http://mao.5ch.io/test/read.cgi/linux/1443885102/31
32: login:Penguin [sage] 2015/10/05(月) 00:13:36.93 ID:krlerkMH ピラフは旨い http://mao.5ch.io/test/read.cgi/linux/1443885102/32
33: login:Penguin [sage] 2015/10/05(月) 02:41:11.48 ID:n5ifdXzm >>25 tee を使えば、画面とファイルに、同時に出力できる http://mao.5ch.io/test/read.cgi/linux/1443885102/33
34: login:Penguin [sage] 2015/10/05(月) 05:22:02.33 ID:krlerkMH teeコマンドとはpeeという単語をもじって作られた単語 peeとはおしっこ(をする)という意味で (ファイルに書きだしたものが画面に)漏れる という所から来ている。 http://mao.5ch.io/test/read.cgi/linux/1443885102/34
35: login:Penguin [sage] 2015/10/05(月) 11:09:28.44 ID:Msv6SUAn >>3 "C:\Program Files" とかくくるだけやん >>17 変数の参照ってどういう意味だ? >>24 VBSやPowerShellは1GBくらいの巨大なテキストのログを 調べようとしたら、1GBのオブジェクト作ってメモリ関係のエラーが出て ワロタよ Unixの小さいメモリで動くコマンドをパイプでつなげる方がいいわ DOS・NTコマンドもUnix思想だから、PowerShellやVBSをあきらめて NTコマンドをパイプでつないでなんとか解決したけどさ。 いちいちオブジェクト作るとか大げさだわ http://mao.5ch.io/test/read.cgi/linux/1443885102/35
36: login:Penguin [] 2015/10/05(月) 14:53:21.42 ID:DDfYGEKk >>33 やろうとしたいことちゃんと読んだ? ( echo 1; echo 2>&2; echo 3>1; echo 4>&2) みたいなコマンドから 1 2 3 4 の出力と 1 3 の出力を分離したいって意味だと思ったんだが http://mao.5ch.io/test/read.cgi/linux/1443885102/36
37: login:Penguin [sage] 2015/10/05(月) 20:15:00.17 ID:RFzaXW3t >>36 cronで頑張るわけでも無いだろうし、管理出来ていないものを無理くりやって保守できなくなる未来しか見えない。筋が悪いのでアホでも管理できるよう、KISSがいいね。 http://mao.5ch.io/test/read.cgi/linux/1443885102/37
38: login:Penguin [] 2015/10/05(月) 20:21:23.73 ID:qJa6tBSz bashを極めたいんだがなんかいいサイトないか? http://mao.5ch.io/test/read.cgi/linux/1443885102/38
39: login:Penguin [sage] 2015/10/05(月) 21:09:18.28 ID:krlerkMH >>38 http://www.amazon.co.jp/b?node=2221117051 http://mao.5ch.io/test/read.cgi/linux/1443885102/39
40: ピラフ [] 2015/10/05(月) 21:12:28.00 ID:GG5PCVx7 >>39 ____ / \ / ─ ─\ / ⌒ ⌒ \ ハハッ超ワロス 笑い死ぬわ | ,ノ(、_, )ヽ | \ トェェェイ / / _ ヽニソ, く http://mao.5ch.io/test/read.cgi/linux/1443885102/40
41: ピラフ [] 2015/10/05(月) 21:13:23.82 ID:GG5PCVx7 >>34 変態 http://mao.5ch.io/test/read.cgi/linux/1443885102/41
42: ピラフ [] 2015/10/05(月) 21:15:32.04 ID:GG5PCVx7 >>33 teeって標準出力を受け取るじゃん。 標準エラー出力のみを画面に出力するとともに 標準出力と標準エラー出力を同じファイルに出力したい。 とても難しい。とてもわからない。とても教えてほしい。 >>36 そうなんよ。わからないんよ。教えてほしいんよ。お願いするんよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/42
43: ピラフ [] 2015/10/05(月) 21:16:20.27 ID:GG5PCVx7 >>37 ヽ(○´ε`○)ノぶちゅ http://mao.5ch.io/test/read.cgi/linux/1443885102/43
44: ピラフ [] 2015/10/05(月) 21:17:45.51 ID:GG5PCVx7 >>35 んなアホな。VBScriptはできる子だよ。ピラフが証明してみせるよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/44
45: login:Penguin [] 2015/10/06(火) 00:31:46.32 ID:F1F9KS5h % cat test.sh ( echo 1; echo 2 >&2; echo 3; echo 4 >&2 ) % : > log; stdbuf -oL -eL bash test.sh 2>>log | tee -a log 1 3 % cat log 2 1 3 4 stdout と stderr との同期とれてないのが、、うーん http://mao.5ch.io/test/read.cgi/linux/1443885102/45
46: login:Penguin [sage] 2015/10/06(火) 04:37:35.92 ID:RPZPhUvj 標準出力はバッファリングされて、 ある程度データがたまってから出力されるが、 標準エラーは重要度が高いため、 バッファリングされずに、即画面に出力される >>3 ファイル名には、半角英数字と「_」アンダーバーだけを、 使った方がよい。外人の作るアプリでは、 日本語などは考慮されていないことが多いから Mac用に、PowerShellでファイル名の、 半角スペースをアンダーバーに変換する、 プログラムを書いたりした http://mao.5ch.io/test/read.cgi/linux/1443885102/46
47: login:Penguin [sage] 2015/10/06(火) 04:44:46.72 ID:NURn7XIT >>46 > 外人の作るアプリでは、 > 日本語などは考慮されていないことが多いから えっとな、俺日本人。 今は俺(=日本人)が作るアプリの話してる。 http://mao.5ch.io/test/read.cgi/linux/1443885102/47
48: login:Penguin [sage] 2015/10/06(火) 04:47:28.04 ID:NURn7XIT それからスペースは日本語じゃない。 半角英数字と「_」アンダーバーだけを使った方がよい理由が、 日本語を考慮してないからというのは、理屈がおかしい http://mao.5ch.io/test/read.cgi/linux/1443885102/48
49: login:Penguin [sage] 2015/10/06(火) 12:44:40.38 ID:4T4D9m2w >>43 簡単なものは簡単なままにしておけクソ野郎 http://mao.5ch.io/test/read.cgi/linux/1443885102/49
50: login:Penguin [sage] 2015/10/06(火) 12:55:28.62 ID:IpqxO3tA bashは何日でマスターできる? http://mao.5ch.io/test/read.cgi/linux/1443885102/50
51: login:Penguin [sage] 2015/10/07(水) 07:32:29.79 ID:GQwM5Yjq UNIX シェルスクリプト・コマンドブック 第3版 山下哲典、2015 Software Design 2014/1 にも、シェルの特集が40ページ分、載っている まあ、1〜2週間あれば、そこそこ出来る ただ、exportを付けないシェル変数は、 同一プロセス内でのみ有効で、 下記のサブシェルのような、別のプロセスには引き継がれない ` ` または、$( ) によるコマンド置換 ( ) によるグルーピング パイプ・リダイレクト シェル変数を、別のスクリプトでも使いたいのなら、 . または、source コマンドで、 スクリプトをカレントシェル上に呼び出すと、 同一プロセス内での実行となる sh スクリプト名 → 別のプロセス(子プロセス) . スクリプト名 → 同一プロセス http://mao.5ch.io/test/read.cgi/linux/1443885102/51
52: login:Penguin [] 2015/10/07(水) 10:29:19.64 ID:M6NB5j5s シュエルスクリプトの関数にするか、 それとも外部プログラムにするか、 どっちがいい? http://mao.5ch.io/test/read.cgi/linux/1443885102/52
53: login:Penguin [sage] 2015/10/07(水) 12:55:15.05 ID:8ottO0ep >>52 動くならどっちでもいい。直感的にわかりやすい。コードの見通しが良くなる方が望ましい。 http://mao.5ch.io/test/read.cgi/linux/1443885102/53
54: login:Penguin [sage] 2015/10/07(水) 19:58:15.15 ID:RV6ZvwXQ GTK+のプログラミングマスターした人いる? 紙資料で3.5cmの厚みなんだ。 為になるよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/54
55: login:Penguin [sage] 2015/10/08(木) 09:11:47.18 ID:WEInxm9o >>27 bashはOSに依存しないし、該当スレはbashなりzshなり使用するシェルをきちんと申告すれば対応してくれる それ以上に理由がない限りスレを立てる意味がない http://mao.5ch.io/test/read.cgi/linux/1443885102/55
56: login:Penguin [] 2015/10/08(木) 20:48:47.87 ID:lgr3Fqt0 なぜbashなのに拡張子を.shにするのか http://mao.5ch.io/test/read.cgi/linux/1443885102/56
57: login:Penguin [sage] 2015/10/08(木) 22:09:59.71 ID:zqGOFpq7 拡張子は飾りです お好きなようにどうぞ http://mao.5ch.io/test/read.cgi/linux/1443885102/57
58: ピラフ [] 2015/10/08(木) 22:25:19.94 ID:HskmnVPN >>55 UNIX板はUNIXに依存してるでしょうが。 女性専用の老人ホームに若くてピチピチの可愛いギャルが 入居するようなものだよ。女に変わりはないだろうけども 不適切だよね。老人じゃないし、可愛いし、ピチピチだし。 場を弁えるってそういうことだと思う。若い人が新たにコミュニティを作る ことには意味があると思うし、ピラフは梯子(テコ)でも動かない! http://mao.5ch.io/test/read.cgi/linux/1443885102/58
59: login:Penguin [sage] 2015/10/08(木) 23:29:11.08 ID:UuNzaExB というスピリッツで単発スレ立てする人は自分が満足すると埋め立ての責任を持たず放置する傾向にあるんだよな。 ちゃんと1000まで話題を提供してくれるの?(´・ω・`) http://mao.5ch.io/test/read.cgi/linux/1443885102/59
60: ピラフ [] 2015/10/08(木) 23:40:22.73 ID:HskmnVPN >>59 みんなでここを良いスレにしようよ。 ピラフだけでは無理。みんなで力を合わせようよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/60
61: ピラフ [] 2015/10/09(金) 02:29:26.94 ID:apuZirFb 全員がピラフになれば、ピラフだけでもヤれる http://mao.5ch.io/test/read.cgi/linux/1443885102/61
62: login:Penguin [] 2015/10/09(金) 23:04:23.52 ID:3VAz+DjZ >>60 あのさ、>>45 に対して礼のひとつも言わないのは人としてまずくない? http://mao.5ch.io/test/read.cgi/linux/1443885102/62
63: login:Penguin ダメな奴は何をやっても©2ch.net [agete] 2015/10/14(水) 05:54:07.87 ID:VsqQS5me >>62 表示したいのはエラー出力やし人格否定するほどではないな $ cat test.sh #!/bin/sh echo 1; echo 2 >&2; echo 3; echo 4 >&2 $ ( ./test.sh >> log ) 2>&1 | tee -a log 2 4 $ cat log 1 2 3 4 保証はせーへんけどな http://mao.5ch.io/test/read.cgi/linux/1443885102/63
64: login:Penguin [sage] 2015/10/14(水) 06:28:04.34 ID:v4uCjH3b >>62 > あのさ、>>45 に対して礼のひとつも言わないのは人としてまずくない? ですよね。お礼は三行。常識です。 http://mao.5ch.io/test/read.cgi/linux/1443885102/64
65: login:Penguin [sage] 2015/10/17(土) 11:28:33.01 ID:tB03pcpd もう>>59が言ってる状態に入りかけてる http://mao.5ch.io/test/read.cgi/linux/1443885102/65
66: login:Penguin [] 2015/10/22(木) 23:02:24.35 ID:hLzbOUmG ☆ 日本の核武装は早急に必須ですわ。☆ 総務省の『憲法改正国民投票法』、でググってみてください。 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である 改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。 http://mao.5ch.io/test/read.cgi/linux/1443885102/66
67: login:Penguin [] 2015/11/05(木) 02:04:29.11 ID:70mAwyHg bashで30ファイル、計1500行ぐらいの 大作ツール作ったぜw http://mao.5ch.io/test/read.cgi/linux/1443885102/67
68: login:Penguin [sage] 2015/11/05(木) 07:56:52.03 ID:y6/bEwWc 解説付きうpplz http://mao.5ch.io/test/read.cgi/linux/1443885102/68
69: login:Penguin [sage] 2015/11/07(土) 02:29:03.19 ID:M5pvVJO6 pythonなら1桁落ちるわけですね? http://mao.5ch.io/test/read.cgi/linux/1443885102/69
70: login:Penguin [sage] 2015/11/07(土) 09:27:51.85 ID:XsE55U3y ないわーw http://mao.5ch.io/test/read.cgi/linux/1443885102/70
71: ピラフ ◆9Jro6YFwm650 [] 2015/11/09(月) 00:31:06.30 ID:uu5Sv9eW >>65 ピラフもうネタ切れだからさ、なんか話題あったら書き込んで。 遠慮しなくていいから。みんなでここをいいスレにしようよ! http://mao.5ch.io/test/read.cgi/linux/1443885102/71
72: ピラフ ◆9Jro6YFwm650 [] 2015/11/09(月) 00:39:20.01 ID:uu5Sv9eW 変数の宣言について たとえば、こういうプログラムを書いたとき pilafは9回表示されるかと思いきや3回しか表示されない。 fun_testでfun_mainのiを読み書きしてしまうから。 だから、変数はローカル変数で宣言する必要がある。 #!/bin/bash fun_test() { i=1 while (( i <= 3 )); do echo pilaf (( i++ )) done } fun_main() { i=1 while (( i <= 3 )); do fun_test (( i++ )) done } fun_main http://mao.5ch.io/test/read.cgi/linux/1443885102/72
73: login:Penguin [sage] 2015/11/09(月) 02:21:06.81 ID:vvdpTyUy 以下のコードは何も表示されない。 #!/bin/bash echo "hello" | while read msg; do var=$msg done echo $var http://mao.5ch.io/test/read.cgi/linux/1443885102/73
74: login:Penguin [sage] 2015/11/09(月) 03:17:18.36 ID:glvAAiJJ パイプを使っているから、 その部分がサブシェル(子プロセス)になっていて、 そこで宣言した変数varが、 カレントシェル(親プロセス)に持ち出せない どういう解決策があったっけ? export を付ければよいのか? >>51 に書いておいた http://mao.5ch.io/test/read.cgi/linux/1443885102/74
75: login:Penguin [sage] 2015/11/09(月) 03:34:11.12 ID:sW5M/AJB echo -ne "hello\nworld" | while read msg; do echo $msg ;done うっかりしてると最後の行を処理し損ねる http://mao.5ch.io/test/read.cgi/linux/1443885102/75
76: login:Penguin [sage] 2015/11/09(月) 03:41:31.11 ID:vvdpTyUy こう書き換えるだけでいいよ while read msg; do var=$msg done < <(echo "hello") http://mao.5ch.io/test/read.cgi/linux/1443885102/76
77: 76 [sage] 2015/11/09(月) 11:14:31.70 ID:9zOZIa4h さて、ではこれはどう表示されるでしょうか? #!/bin/bash i=0 while read msg; do echo "A $msg" ((i+=3)) done < <(while read msg; do echo "B $msg" ((i+=2)) done < <(echo "hello")) echo $i http://mao.5ch.io/test/read.cgi/linux/1443885102/77
78: login:Penguin [] 2015/11/10(火) 09:33:01.23 ID:DpgyD2JB http://pero2.cocolog-nifty.com/ http://mao.5ch.io/test/read.cgi/linux/1443885102/78
79: ピラフ ◆9Jro6YFwm650 [] 2015/11/17(火) 23:05:38.66 ID:cJiBRV26 変数の宣言と同時に値を代入を行うと コマンド置換を使うときにリターンコードを取得できない fun_getValue() { return 1 } fun_main() { declare value=$(fun_getValue) echo $? } fun_main 上のプログラムは0を出力する declare value value=$(fun_getValue) 必然的にこういう形を取ることになる VBScriptみたい http://mao.5ch.io/test/read.cgi/linux/1443885102/79
80: login:Penguin [] 2015/11/19(木) 09:42:08.42 ID:Jjkt5i+K 間接参照はこうすればいいみたいだけどさ、 var=123 ref="var" echo "${!ref}" # 123 間接代入はどうすればいいの? 一応evalつかってできたけど、これしかない? eval "$ref"=456 http://mao.5ch.io/test/read.cgi/linux/1443885102/80
81: login:Penguin [sage] 2015/11/19(木) 22:36:45.54 ID:3iQoIwnP だまってPHPとかC言語とか使えや。 反論不要。だまって使え。 所詮bashはシェルだよ。 プログラミング言語として使おうとしなくていい。 http://mao.5ch.io/test/read.cgi/linux/1443885102/81
82: login:Penguin [sage] 2015/11/20(金) 06:03:03.13 ID:oqxoCWjH (まともな)コーディング規約ってないかな? http://mao.5ch.io/test/read.cgi/linux/1443885102/82
83: login:Penguin [sage] 2015/11/20(金) 17:45:24.35 ID:UgnIOuo6 [[ $a = $b ]] $a はただの文字列として扱われるが、$b はパターンマッチング処理されることに注意 単なる文字列比較をしたい場合は [[ $a = "$b" ]] または [[ "$a" = "$b" ]] なお、[ ] と違って [[ ]] は $a を "" で囲む必要はない。 http://mao.5ch.io/test/read.cgi/linux/1443885102/83
84: ピラフ ◆9Jro6YFwm650 [] 2015/11/23(月) 11:07:28.01 ID:e6CiHMu0 >>83 echoもそうだよね。 いい感じのエラーログを出力しようとしたらファイル丸出し。 a="*** ERROR ***" echo $a http://mao.5ch.io/test/read.cgi/linux/1443885102/84
85: login:Penguin [sage] 2015/11/23(月) 12:24:20.91 ID:rfqyRG3i echo には -e という文字列を出力できないという問題があるので 完ぺきを求めるなら、printf "%s\n" "$text" とした方がいい。 なお、echo も printf も それぞれ /bin/echo、/usr/bin/printf という バイナリがあるが、bash も sh も zsh もシェルビルトイン関数である。 http://mao.5ch.io/test/read.cgi/linux/1443885102/85
86: ピラフ ◆9Jro6YFwm650 [] 2015/11/23(月) 14:03:10.18 ID:e6CiHMu0 >>85 マジか!?マジでか!! echo難儀なコマンドだね http://mao.5ch.io/test/read.cgi/linux/1443885102/86
87: login:Penguin [sage] 2015/11/23(月) 17:17:23.97 ID:HMW3Nv9o echo -e \\0055e http://mao.5ch.io/test/read.cgi/linux/1443885102/87
88: login:Penguin [sage] 2015/11/23(月) 17:25:37.43 ID:m+EccjTy あー、うん、せやね。 -eだけじゃなくて-nもだめだし-eneもだめ さて$aに任意の文字が入っている時、それをechoで問題なく出力するにはどうするか? もちろん、$aに \e[33m のような文字列が入っていることがあるが、 printf "%s\n" $a と同じようにそのまま出力するというのが条件。 とまで書かないといかんよね。 http://mao.5ch.io/test/read.cgi/linux/1443885102/88
89: login:Penguin [] 2015/11/24(火) 10:07:24.30 ID:xf2Nfg3B bashでは知らないけどzshでは echo e- |rev とすると表示できたよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/89
90: login:Penguin [sage] 2015/11/24(火) 14:55:58.31 ID:jlJmLfSH a="-e" echo "$a" |rev zshでも表示されねーじゃねーかwww http://mao.5ch.io/test/read.cgi/linux/1443885102/90
91: login:Penguin [] 2015/11/24(火) 15:25:38.09 ID:xf2Nfg3B echo $'\0'$a http://mao.5ch.io/test/read.cgi/linux/1443885102/91
92: login:Penguin [] 2015/11/24(火) 15:35:52.95 ID:xf2Nfg3B いや、その条件ならa='e-'にしてrevするべきだろ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/92
93: login:Penguin [sage] 2015/11/24(火) 15:38:52.15 ID:jlJmLfSH 条件は $a に -e が入っている場合なんですが? もちろん $a には-e だけじゃなくて、-n や -ene や e-が入っていることもあります。 http://mao.5ch.io/test/read.cgi/linux/1443885102/93
94: login:Penguin [sage] 2015/11/24(火) 15:44:01.15 ID:jlJmLfSH >>91 a="ab" $ echo -n $a | wc -c 2 $ echo -n $'\0'$a | wc -c 3 1文字増えちゃってますよ? http://mao.5ch.io/test/read.cgi/linux/1443885102/94
95: login:Penguin [] 2015/11/24(火) 15:46:08.87 ID:xf2Nfg3B そんな偉そうに言われてもな。89にたいする90の解答って.. http://mao.5ch.io/test/read.cgi/linux/1443885102/95
96: login:Penguin [] 2015/11/24(火) 15:46:57.54 ID:xf2Nfg3B そりゃ増えるよ。見たまんま増やしてるのだから。 http://mao.5ch.io/test/read.cgi/linux/1443885102/96
97: login:Penguin [sage] 2015/11/24(火) 16:11:17.98 ID:jlJmLfSH ? ネタ回答はいらんって話だよ。 http://mao.5ch.io/test/read.cgi/linux/1443885102/97
98: login:Penguin [sage] 2015/11/24(火) 23:41:07.34 ID:zPMHS13p Bashでツールを作ったんですけど、ここで紹介するのありですか? ソースコードはかなりまじめに書いています。 ドキュメントと仕上げでもう少しだけ時間が掛かりそうですけど。 http://mao.5ch.io/test/read.cgi/linux/1443885102/98
99: ピラフ ◆9Jro6YFwm650 [] 2015/11/24(火) 23:51:49.15 ID:uXBTKSJE >>98 ┓┏ (^ω^) アリだっ! ┌.ゝ .ノ┐ ┌'、_丿┐ ┛ ┗ http://mao.5ch.io/test/read.cgi/linux/1443885102/99
100: login:Penguin [sage] 2015/11/25(水) 00:23:32.51 ID:ndEs85Cz つ 穴を塞ぐ http://mao.5ch.io/test/read.cgi/linux/1443885102/100
101: login:Penguin [sage] 2015/11/25(水) 00:43:00.55 ID:cNzVYyHb >>99 じゃあ、終わったら連絡しますね。 http://mao.5ch.io/test/read.cgi/linux/1443885102/101
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 166 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s