Bash - GNU Project - Free Software Foundation
https://www.gnu.org/software/bash/
Bashでプログラミング [転載禁止]©2ch.net
1ピラフ
2015/10/04(日) 00:11:42.24ID:KQhWWZXy2ピラフ
2015/10/04(日) 00:17:45.41ID:KQhWWZXy bashはUnixシェルです。
bashを使ったシェルスクリプティングテクニックや
プログラミングについて和気あいあいとそしてほのぼのと語り合いたいと
思ってこのスレを建てました。よろしくお願いいたします。
bashを使ったシェルスクリプティングテクニックや
プログラミングについて和気あいあいとそしてほのぼのと語り合いたいと
思ってこのスレを建てました。よろしくお願いいたします。
2015/10/04(日) 02:17:29.14ID:B+hGdmlE
シェルスクリプトクソめんどくせぇ。
どこでも動くように作る必要があるものだから
仕方なく作ってるけど、パスにスペースが入ったらとか、
くそめんどくせぇ
どこでも動くように作る必要があるものだから
仕方なく作ってるけど、パスにスペースが入ったらとか、
くそめんどくせぇ
2015/10/04(日) 03:41:56.50ID:2ljDEtpK
もうスクリプトはpythonでよくね?
Bashが動くような環境ならpythonがほぼ間違いなく動くから、制限だらけのBashで書く理由が思いつかない。
Bashが動くような環境ならpythonがほぼ間違いなく動くから、制限だらけのBashで書く理由が思いつかない。
5ピラフ
2015/10/04(日) 03:50:20.09ID:KQhWWZXy >>3
ピラフも昔はシェル間の互換性とかに気を配ってたよね。
でもある日悟ったんだよね、超めんどくせえと。
それ以来bashで動けばなんでも良いって思うようになった。
パスにスペースが入ることにも目をつぶるようになった。めでたしめでたし。
ピラフも昔はシェル間の互換性とかに気を配ってたよね。
でもある日悟ったんだよね、超めんどくせえと。
それ以来bashで動けばなんでも良いって思うようになった。
パスにスペースが入ることにも目をつぶるようになった。めでたしめでたし。
6ピラフ
2015/10/04(日) 03:54:46.40ID:KQhWWZXy >>4
pythonいいよねpython。
一貫性があってシンプルでわかりやすい。
黒魔術perlとは違うよね。
コマンドを実行するだけとか、他のプログラムをキックするだけとか
そういうのだったらシェルスクリプトでいいんだけど、構造化が
必要なほどのプログラムになるときつい。
pythonいいよねpython。
一貫性があってシンプルでわかりやすい。
黒魔術perlとは違うよね。
コマンドを実行するだけとか、他のプログラムをキックするだけとか
そういうのだったらシェルスクリプトでいいんだけど、構造化が
必要なほどのプログラムになるときつい。
7ピラフ
2015/10/04(日) 03:57:02.21ID:KQhWWZXy ノウハウが好きな人にはbashはたまらないと思うんだよね
垂涎ものだよ、たとえバッドでも。バッドでも!
垂涎ものだよ、たとえバッドでも。バッドでも!
2015/10/04(日) 04:03:08.09ID:B+hGdmlE
パスにスペースが入ってるとパスが引数として解釈されたり、
最悪の場合、脆弱性につながりそうで怖いんだが。
最悪の場合、脆弱性につながりそうで怖いんだが。
2015/10/04(日) 04:07:46.40ID:B+hGdmlE
10ピラフ
2015/10/04(日) 04:17:59.52ID:KQhWWZXy >>8
わかる。-とかもだよね。これオプションじゃないのよー!みたいな。
シェルを広く公開するならそういうのにも対応しといたがいいのだろうけど、
内輪で使うならまあないっしょ大丈夫っしょ問題ないっしょ!と念じて目をつぶって地蔵の
ふりをするのもありだと思うよ。
わかる。-とかもだよね。これオプションじゃないのよー!みたいな。
シェルを広く公開するならそういうのにも対応しといたがいいのだろうけど、
内輪で使うならまあないっしょ大丈夫っしょ問題ないっしょ!と念じて目をつぶって地蔵の
ふりをするのもありだと思うよ。
11ピラフ
2015/10/04(日) 04:18:35.71ID:KQhWWZXy >>9
マジで!?ピラフそのコマンド使ったことない。ちょっと調べてみる。
マジで!?ピラフそのコマンド使ったことない。ちょっと調べてみる。
2015/10/04(日) 04:21:31.28ID:B+hGdmlE
> そのコマンド使ったことない。
ナイスジョーク
ナイスジョーク
13ピラフ
2015/10/04(日) 04:23:19.15ID:KQhWWZXy [はtestコマンドだったのか。てっきりbashのsyntaxだとばかり思ってた。
14ピラフ
2015/10/04(日) 04:25:01.42ID:KQhWWZXy >>12
播(゚∀゚d)ォゥィェ!!
播(゚∀゚d)ォゥィェ!!
2015/10/04(日) 04:28:26.27ID:B+hGdmlE
[ "$var" = "test" ]
意味
コマンド名 ・・・ [
第一引数 ・・・ "$var"
第二引数 ・・・ =
第三引数 ・・・ "test"
第四引数 ・・・ ]
考えてみよう!
[ "$var" = "test"] なぜ "test" と ] の間のスペースをなくすとエラーになるのか?
[ $var = "test" ] なぜ 変数名を "" で括るのが一般的なのか?
意味
コマンド名 ・・・ [
第一引数 ・・・ "$var"
第二引数 ・・・ =
第三引数 ・・・ "test"
第四引数 ・・・ ]
考えてみよう!
[ "$var" = "test"] なぜ "test" と ] の間のスペースをなくすとエラーになるのか?
[ $var = "test" ] なぜ 変数名を "" で括るのが一般的なのか?
16ピラフ
2015/10/04(日) 04:34:56.30ID:KQhWWZXy >>15
おもしろい、考えてみる!
おもしろい、考えてみる!
2015/10/04(日) 04:44:01.35ID:B+hGdmlE
なぜ他の言語のように
if [$var="test] then
fi
とシンプルにかけないのか?
[ コマンドを考えついた奴は、俺頭いい!って思っちゃったんだろうな。
そのせいでシェルスクリプトの構文を改善する機会がなくなった。
シェルスクリプトは変数への代入はできるが変数の参照はできない。
できるのは変数の中身の文字列展開だけ。
それがパスにスペースが有る場合の問題にまで影響してるのさ。
くっそ言語、くっそ言語、
if [$var="test] then
fi
とシンプルにかけないのか?
[ コマンドを考えついた奴は、俺頭いい!って思っちゃったんだろうな。
そのせいでシェルスクリプトの構文を改善する機会がなくなった。
シェルスクリプトは変数への代入はできるが変数の参照はできない。
できるのは変数の中身の文字列展開だけ。
それがパスにスペースが有る場合の問題にまで影響してるのさ。
くっそ言語、くっそ言語、
2015/10/04(日) 05:08:00.09ID:Fdr2poSK
しょーもないことをドヤ顔で語ってるな
2015/10/04(日) 05:14:24.14ID:B+hGdmlE
20ピラフ
2015/10/04(日) 05:33:56.23ID:KQhWWZXy >>18
みんなでここをいいドヤ顔スレにしよう(提案(前向き(全力(社畜
みんなでここをいいドヤ顔スレにしよう(提案(前向き(全力(社畜
2015/10/04(日) 11:26:14.16ID:q4z/9k1Q
どうしてピラフはわざわざ、プログラム板から、
Linux板にまで出てきたのですか?
皆で、オブジェクト指向のPowerShellへ、移行しませう。
他には、VBScript, JScript もあるし
.NETの世界は、極楽ですぜw
Linux板にまで出てきたのですか?
皆で、オブジェクト指向のPowerShellへ、移行しませう。
他には、VBScript, JScript もあるし
.NETの世界は、極楽ですぜw
2015/10/04(日) 12:27:39.97ID:O5AlniCT
23ピラフ
2015/10/04(日) 13:01:31.07ID:KQhWWZXy24ピラフ
2015/10/04(日) 13:09:32.23ID:KQhWWZXy >>21
VBScriptはピラフが一番好きなプログラム言語だよ。
いいよねーあれ。Linuxでも使えたら良いのにって毎日思ってるよ。
Linux環境で動く.NET Coreが発表されて.NETはますます勢いを増しそうだよね。
PowerShellと.NET Coreはピラフも興味を持っています。今後ともよろしくお願いいたします。
VBScriptはピラフが一番好きなプログラム言語だよ。
いいよねーあれ。Linuxでも使えたら良いのにって毎日思ってるよ。
Linux環境で動く.NET Coreが発表されて.NETはますます勢いを増しそうだよね。
PowerShellと.NET Coreはピラフも興味を持っています。今後ともよろしくお願いいたします。
25ピラフ
2015/10/04(日) 20:31:29.91ID:KQhWWZXy ピラフさあ、困ってることがあって
標準出力と標準エラー出力を同じファイルに書き出して、
かつ、標準エラー出力のみを画面に出力したいんだよね。
そのやり方がどうしてもわからなくて教えて欲しいんです。
教えてください、おねがいします。
標準出力と標準エラー出力を同じファイルに書き出して、
かつ、標準エラー出力のみを画面に出力したいんだよね。
そのやり方がどうしてもわからなくて教えて欲しいんです。
教えてください、おねがいします。
2015/10/04(日) 22:30:31.51ID:cHujBtP3
SNSじゃねぇんだから、>>22のスレに移動しろよ。
27ピラフ
2015/10/04(日) 22:47:52.26ID:KQhWWZXy2015/10/04(日) 22:52:50.99ID:mhzx8YQK
おのれは誰やねん
29ピラフ
2015/10/04(日) 23:11:54.27ID:KQhWWZXy >>28
お前が誰だ。なんだペンギンて。なめてんのか。
お前が誰だ。なんだペンギンて。なめてんのか。
30login:Penguin
2015/10/04(日) 23:31:51.40ID:jHPuSLta vipq2が高ければこのスレ落とすんだけどなぁ
無念
無念
31ピラフ
2015/10/04(日) 23:33:29.89ID:KQhWWZXy2015/10/05(月) 00:13:36.93ID:krlerkMH
ピラフは旨い
2015/10/05(月) 02:41:11.48ID:n5ifdXzm
>>25
tee を使えば、画面とファイルに、同時に出力できる
tee を使えば、画面とファイルに、同時に出力できる
2015/10/05(月) 05:22:02.33ID:krlerkMH
teeコマンドとはpeeという単語をもじって作られた単語
peeとはおしっこ(をする)という意味で
(ファイルに書きだしたものが画面に)漏れる
という所から来ている。
peeとはおしっこ(をする)という意味で
(ファイルに書きだしたものが画面に)漏れる
という所から来ている。
2015/10/05(月) 11:09:28.44ID:Msv6SUAn
36login:Penguin
2015/10/05(月) 14:53:21.42ID:DDfYGEKk >>33
やろうとしたいことちゃんと読んだ?
( echo 1; echo 2>&2; echo 3>1; echo 4>&2)
みたいなコマンドから
1
2
3
4
の出力と
1
3
の出力を分離したいって意味だと思ったんだが
やろうとしたいことちゃんと読んだ?
( echo 1; echo 2>&2; echo 3>1; echo 4>&2)
みたいなコマンドから
1
2
3
4
の出力と
1
3
の出力を分離したいって意味だと思ったんだが
2015/10/05(月) 20:15:00.17ID:RFzaXW3t
>>36
cronで頑張るわけでも無いだろうし、管理出来ていないものを無理くりやって保守できなくなる未来しか見えない。筋が悪いのでアホでも管理できるよう、KISSがいいね。
cronで頑張るわけでも無いだろうし、管理出来ていないものを無理くりやって保守できなくなる未来しか見えない。筋が悪いのでアホでも管理できるよう、KISSがいいね。
38login:Penguin
2015/10/05(月) 20:21:23.73ID:qJa6tBSz bashを極めたいんだがなんかいいサイトないか?
2015/10/05(月) 21:09:18.28ID:krlerkMH
40ピラフ
2015/10/05(月) 21:12:28.00ID:GG5PCVx7 >>39
____
/ \
/ ─ ─\
/ ⌒ ⌒ \ ハハッ超ワロス 笑い死ぬわ
| ,ノ(、_, )ヽ |
\ トェェェイ /
/ _ ヽニソ, く
____
/ \
/ ─ ─\
/ ⌒ ⌒ \ ハハッ超ワロス 笑い死ぬわ
| ,ノ(、_, )ヽ |
\ トェェェイ /
/ _ ヽニソ, く
41ピラフ
2015/10/05(月) 21:13:23.82ID:GG5PCVx7 >>34
変態
変態
42ピラフ
2015/10/05(月) 21:15:32.04ID:GG5PCVx743ピラフ
2015/10/05(月) 21:16:20.27ID:GG5PCVx7 >>37
ヽ(○´ε`○)ノぶちゅ
ヽ(○´ε`○)ノぶちゅ
44ピラフ
2015/10/05(月) 21:17:45.51ID:GG5PCVx7 >>35
んなアホな。VBScriptはできる子だよ。ピラフが証明してみせるよ。
んなアホな。VBScriptはできる子だよ。ピラフが証明してみせるよ。
45login:Penguin
2015/10/06(火) 00:31:46.32ID: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 との同期とれてないのが、、うーん
( 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 との同期とれてないのが、、うーん
2015/10/06(火) 04:37:35.92ID:RPZPhUvj
標準出力はバッファリングされて、
ある程度データがたまってから出力されるが、
標準エラーは重要度が高いため、
バッファリングされずに、即画面に出力される
>>3
ファイル名には、半角英数字と「_」アンダーバーだけを、
使った方がよい。外人の作るアプリでは、
日本語などは考慮されていないことが多いから
Mac用に、PowerShellでファイル名の、
半角スペースをアンダーバーに変換する、
プログラムを書いたりした
ある程度データがたまってから出力されるが、
標準エラーは重要度が高いため、
バッファリングされずに、即画面に出力される
>>3
ファイル名には、半角英数字と「_」アンダーバーだけを、
使った方がよい。外人の作るアプリでは、
日本語などは考慮されていないことが多いから
Mac用に、PowerShellでファイル名の、
半角スペースをアンダーバーに変換する、
プログラムを書いたりした
2015/10/06(火) 04:44:46.72ID:NURn7XIT
2015/10/06(火) 04:47:28.04ID:NURn7XIT
それからスペースは日本語じゃない。
半角英数字と「_」アンダーバーだけを使った方がよい理由が、
日本語を考慮してないからというのは、理屈がおかしい
半角英数字と「_」アンダーバーだけを使った方がよい理由が、
日本語を考慮してないからというのは、理屈がおかしい
2015/10/06(火) 12:44:40.38ID:4T4D9m2w
>>43
簡単なものは簡単なままにしておけクソ野郎
簡単なものは簡単なままにしておけクソ野郎
2015/10/06(火) 12:55:28.62ID:IpqxO3tA
bashは何日でマスターできる?
2015/10/07(水) 07:32:29.79ID:GQwM5Yjq
UNIX シェルスクリプト・コマンドブック 第3版
山下哲典、2015
Software Design 2014/1
にも、シェルの特集が40ページ分、載っている
まあ、1〜2週間あれば、そこそこ出来る
ただ、exportを付けないシェル変数は、
同一プロセス内でのみ有効で、
下記のサブシェルのような、別のプロセスには引き継がれない
` ` または、$( ) によるコマンド置換
( ) によるグルーピング
パイプ・リダイレクト
シェル変数を、別のスクリプトでも使いたいのなら、
. または、source コマンドで、
スクリプトをカレントシェル上に呼び出すと、
同一プロセス内での実行となる
sh スクリプト名 → 別のプロセス(子プロセス)
. スクリプト名 → 同一プロセス
山下哲典、2015
Software Design 2014/1
にも、シェルの特集が40ページ分、載っている
まあ、1〜2週間あれば、そこそこ出来る
ただ、exportを付けないシェル変数は、
同一プロセス内でのみ有効で、
下記のサブシェルのような、別のプロセスには引き継がれない
` ` または、$( ) によるコマンド置換
( ) によるグルーピング
パイプ・リダイレクト
シェル変数を、別のスクリプトでも使いたいのなら、
. または、source コマンドで、
スクリプトをカレントシェル上に呼び出すと、
同一プロセス内での実行となる
sh スクリプト名 → 別のプロセス(子プロセス)
. スクリプト名 → 同一プロセス
52login:Penguin
2015/10/07(水) 10:29:19.64ID:M6NB5j5s シュエルスクリプトの関数にするか、
それとも外部プログラムにするか、
どっちがいい?
それとも外部プログラムにするか、
どっちがいい?
2015/10/07(水) 12:55:15.05ID:8ottO0ep
>>52
動くならどっちでもいい。直感的にわかりやすい。コードの見通しが良くなる方が望ましい。
動くならどっちでもいい。直感的にわかりやすい。コードの見通しが良くなる方が望ましい。
2015/10/07(水) 19:58:15.15ID:RV6ZvwXQ
GTK+のプログラミングマスターした人いる?
紙資料で3.5cmの厚みなんだ。
為になるよ。
紙資料で3.5cmの厚みなんだ。
為になるよ。
2015/10/08(木) 09:11:47.18ID:WEInxm9o
56login:Penguin
2015/10/08(木) 20:48:47.87ID:lgr3Fqt0 なぜbashなのに拡張子を.shにするのか
2015/10/08(木) 22:09:59.71ID:zqGOFpq7
拡張子は飾りです
お好きなようにどうぞ
お好きなようにどうぞ
レスを投稿する
ニュース
- 消費減税「極めてコスパ悪い政策」 渡辺・東大名誉教授が国会で意見 [蚤の市★]
- 「高度なAIは人類滅亡のリスクをもたらす」──生成AI「Claude」開発元の米Anthropicが投資家向け資料で言及★2 [♪♪♪★]
- 「上げられるのは法人税だけ」防衛財源で浮上 経済界真っ向反発 [蚤の市★]
- 【サッカー】エムバペ、毛沢東に関する発言を謝罪 「中国の方々とその歴史に深い敬意を抱いており、心から申し訳なく思っています」 [ニーニーφ★]
- 高市首相 「来週中にサイバー攻撃への緊急対策」 ★2 [お断り★]
- 【サッカー】2026バロンドール(年間最優秀選手)は 51試合61得点のケイン(イングランド)が初受賞 エムバペ 2位 ヤマル 3位 [阿弥陀ヶ峰★]