Bash - GNU Project - Free Software Foundation
https://www.gnu.org/software/bash/
Bashでプログラミング [転載禁止]©2ch.net
1ピラフ
2015/10/04(日) 00:11:42.24ID:KQhWWZXy2015/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
拡張子は飾りです
お好きなようにどうぞ
お好きなようにどうぞ
58ピラフ
2015/10/08(木) 22:25:19.94ID:HskmnVPN >>55
UNIX板はUNIXに依存してるでしょうが。
女性専用の老人ホームに若くてピチピチの可愛いギャルが
入居するようなものだよ。女に変わりはないだろうけども
不適切だよね。老人じゃないし、可愛いし、ピチピチだし。
場を弁えるってそういうことだと思う。若い人が新たにコミュニティを作る
ことには意味があると思うし、ピラフは梯子(テコ)でも動かない!
UNIX板はUNIXに依存してるでしょうが。
女性専用の老人ホームに若くてピチピチの可愛いギャルが
入居するようなものだよ。女に変わりはないだろうけども
不適切だよね。老人じゃないし、可愛いし、ピチピチだし。
場を弁えるってそういうことだと思う。若い人が新たにコミュニティを作る
ことには意味があると思うし、ピラフは梯子(テコ)でも動かない!
2015/10/08(木) 23:29:11.08ID:UuNzaExB
というスピリッツで単発スレ立てする人は自分が満足すると埋め立ての責任を持たず放置する傾向にあるんだよな。
ちゃんと1000まで話題を提供してくれるの?(´・ω・`)
ちゃんと1000まで話題を提供してくれるの?(´・ω・`)
60ピラフ
2015/10/08(木) 23:40:22.73ID:HskmnVPN61ピラフ
2015/10/09(金) 02:29:26.94ID:apuZirFb 全員がピラフになれば、ピラフだけでもヤれる
2015/10/14(水) 05:54:07.87ID: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
保証はせーへんけどな
表示したいのはエラー出力やし人格否定するほどではないな
$ 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
保証はせーへんけどな
2015/10/14(水) 06:28:04.34ID:v4uCjH3b
2015/10/17(土) 11:28:33.01ID:tB03pcpd
もう>>59が言ってる状態に入りかけてる
66login:Penguin
2015/10/22(木) 23:02:24.35ID:hLzbOUmG ☆ 日本の核武装は早急に必須ですわ。☆
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
総務省の『憲法改正国民投票法』、でググってみてください。
日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である
改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。
67login:Penguin
2015/11/05(木) 02:04:29.11ID:70mAwyHg bashで30ファイル、計1500行ぐらいの
大作ツール作ったぜw
大作ツール作ったぜw
2015/11/05(木) 07:56:52.03ID:y6/bEwWc
解説付きうpplz
2015/11/07(土) 02:29:03.19ID:M5pvVJO6
pythonなら1桁落ちるわけですね?
2015/11/07(土) 09:27:51.85ID:XsE55U3y
ないわーw
71ピラフ ◆9Jro6YFwm650
2015/11/09(月) 00:31:06.30ID:uu5Sv9eW72ピラフ ◆9Jro6YFwm650
2015/11/09(月) 00:39:20.01ID: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
たとえば、こういうプログラムを書いたとき
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
2015/11/09(月) 02:21:06.81ID:vvdpTyUy
以下のコードは何も表示されない。
#!/bin/bash
echo "hello" | while read msg; do
var=$msg
done
echo $var
#!/bin/bash
echo "hello" | while read msg; do
var=$msg
done
echo $var
2015/11/09(月) 03:17:18.36ID:glvAAiJJ
パイプを使っているから、
その部分がサブシェル(子プロセス)になっていて、
そこで宣言した変数varが、
カレントシェル(親プロセス)に持ち出せない
どういう解決策があったっけ?
export を付ければよいのか?
>>51
に書いておいた
その部分がサブシェル(子プロセス)になっていて、
そこで宣言した変数varが、
カレントシェル(親プロセス)に持ち出せない
どういう解決策があったっけ?
export を付ければよいのか?
>>51
に書いておいた
2015/11/09(月) 03:34:11.12ID:sW5M/AJB
echo -ne "hello\nworld" | while read msg; do echo $msg ;done
うっかりしてると最後の行を処理し損ねる
うっかりしてると最後の行を処理し損ねる
2015/11/09(月) 03:41:31.11ID:vvdpTyUy
こう書き換えるだけでいいよ
while read msg; do
var=$msg
done < <(echo "hello")
while read msg; do
var=$msg
done < <(echo "hello")
7776
2015/11/09(月) 11:14:31.70ID: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
#!/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
78login:Penguin
2015/11/10(火) 09:33:01.23ID:DpgyD2JB79ピラフ ◆9Jro6YFwm650
2015/11/17(火) 23:05:38.66ID:cJiBRV26 変数の宣言と同時に値を代入を行うと
コマンド置換を使うときにリターンコードを取得できない
fun_getValue() {
return 1
}
fun_main() {
declare value=$(fun_getValue)
echo $?
}
fun_main
上のプログラムは0を出力する
declare value
value=$(fun_getValue)
必然的にこういう形を取ることになる
VBScriptみたい
コマンド置換を使うときにリターンコードを取得できない
fun_getValue() {
return 1
}
fun_main() {
declare value=$(fun_getValue)
echo $?
}
fun_main
上のプログラムは0を出力する
declare value
value=$(fun_getValue)
必然的にこういう形を取ることになる
VBScriptみたい
80login:Penguin
2015/11/19(木) 09:42:08.42ID:Jjkt5i+K 間接参照はこうすればいいみたいだけどさ、
var=123
ref="var"
echo "${!ref}" # 123
間接代入はどうすればいいの?
一応evalつかってできたけど、これしかない?
eval "$ref"=456
var=123
ref="var"
echo "${!ref}" # 123
間接代入はどうすればいいの?
一応evalつかってできたけど、これしかない?
eval "$ref"=456
2015/11/19(木) 22:36:45.54ID:3iQoIwnP
だまってPHPとかC言語とか使えや。
反論不要。だまって使え。
所詮bashはシェルだよ。
プログラミング言語として使おうとしなくていい。
反論不要。だまって使え。
所詮bashはシェルだよ。
プログラミング言語として使おうとしなくていい。
2015/11/20(金) 06:03:03.13ID:oqxoCWjH
(まともな)コーディング規約ってないかな?
2015/11/20(金) 17:45:24.35ID:UgnIOuo6
[[ $a = $b ]]
$a はただの文字列として扱われるが、$b はパターンマッチング処理されることに注意
単なる文字列比較をしたい場合は
[[ $a = "$b" ]] または [[ "$a" = "$b" ]]
なお、[ ] と違って [[ ]] は $a を "" で囲む必要はない。
$a はただの文字列として扱われるが、$b はパターンマッチング処理されることに注意
単なる文字列比較をしたい場合は
[[ $a = "$b" ]] または [[ "$a" = "$b" ]]
なお、[ ] と違って [[ ]] は $a を "" で囲む必要はない。
84ピラフ ◆9Jro6YFwm650
2015/11/23(月) 11:07:28.01ID:e6CiHMu02015/11/23(月) 12:24:20.91ID:rfqyRG3i
echo には -e という文字列を出力できないという問題があるので
完ぺきを求めるなら、printf "%s\n" "$text" とした方がいい。
なお、echo も printf も それぞれ /bin/echo、/usr/bin/printf という
バイナリがあるが、bash も sh も zsh もシェルビルトイン関数である。
完ぺきを求めるなら、printf "%s\n" "$text" とした方がいい。
なお、echo も printf も それぞれ /bin/echo、/usr/bin/printf という
バイナリがあるが、bash も sh も zsh もシェルビルトイン関数である。
86ピラフ ◆9Jro6YFwm650
2015/11/23(月) 14:03:10.18ID:e6CiHMu02015/11/23(月) 17:17:23.97ID:HMW3Nv9o
echo -e \\0055e
2015/11/23(月) 17:25:37.43ID:m+EccjTy
あー、うん、せやね。
-eだけじゃなくて-nもだめだし-eneもだめ
さて$aに任意の文字が入っている時、それをechoで問題なく出力するにはどうするか?
もちろん、$aに \e[33m のような文字列が入っていることがあるが、
printf "%s\n" $a と同じようにそのまま出力するというのが条件。
とまで書かないといかんよね。
-eだけじゃなくて-nもだめだし-eneもだめ
さて$aに任意の文字が入っている時、それをechoで問題なく出力するにはどうするか?
もちろん、$aに \e[33m のような文字列が入っていることがあるが、
printf "%s\n" $a と同じようにそのまま出力するというのが条件。
とまで書かないといかんよね。
89login:Penguin
2015/11/24(火) 10:07:24.30ID:xf2Nfg3B bashでは知らないけどzshでは
echo e- |rev
とすると表示できたよ。
echo e- |rev
とすると表示できたよ。
2015/11/24(火) 14:55:58.31ID:jlJmLfSH
a="-e"
echo "$a" |rev
zshでも表示されねーじゃねーかwww
echo "$a" |rev
zshでも表示されねーじゃねーかwww
91login:Penguin
2015/11/24(火) 15:25:38.09ID:xf2Nfg3B echo $'\0'$a
92login:Penguin
2015/11/24(火) 15:35:52.95ID:xf2Nfg3B いや、その条件ならa='e-'にしてrevするべきだろ。
2015/11/24(火) 15:38:52.15ID:jlJmLfSH
条件は $a に -e が入っている場合なんですが?
もちろん $a には-e だけじゃなくて、-n や -ene や
e-が入っていることもあります。
もちろん $a には-e だけじゃなくて、-n や -ene や
e-が入っていることもあります。
2015/11/24(火) 15:44:01.15ID:jlJmLfSH
95login:Penguin
2015/11/24(火) 15:46:08.87ID:xf2Nfg3B そんな偉そうに言われてもな。89にたいする90の解答って..
96login:Penguin
2015/11/24(火) 15:46:57.54ID:xf2Nfg3B そりゃ増えるよ。見たまんま増やしてるのだから。
2015/11/24(火) 16:11:17.98ID:jlJmLfSH
? ネタ回答はいらんって話だよ。
2015/11/24(火) 23:41:07.34ID:zPMHS13p
Bashでツールを作ったんですけど、ここで紹介するのありですか?
ソースコードはかなりまじめに書いています。
ドキュメントと仕上げでもう少しだけ時間が掛かりそうですけど。
ソースコードはかなりまじめに書いています。
ドキュメントと仕上げでもう少しだけ時間が掛かりそうですけど。
99ピラフ ◆9Jro6YFwm650
2015/11/24(火) 23:51:49.15ID:uXBTKSJE >>98
┓┏
(^ω^) アリだっ!
┌.ゝ .ノ┐
┌'、_丿┐
┛ ┗
┓┏
(^ω^) アリだっ!
┌.ゝ .ノ┐
┌'、_丿┐
┛ ┗
2015/11/25(水) 00:23:32.51ID:ndEs85Cz
つ 穴を塞ぐ
2015/11/25(水) 00:43:00.55ID:cNzVYyHb
>>99
じゃあ、終わったら連絡しますね。
じゃあ、終わったら連絡しますね。
2015/11/25(水) 15:14:14.21ID:zaXwxH/w
>>72
> while (( i <= 3 )); do
> echo pilaf
> (( i++ ))
> done
((i++)) 【let i=++】と
((i+=1)) 【let i=i+1】と
i=$((i+1)) は
厳密には違う。
i=0; ((i++)); echo $? => 1
i=0; ((i+=1)); echo $? => 0
i=0; i=$((i+1)); echo $? => 0
i=-1; ((i++)); echo $? => 0
i=-1; ((i+=1)); echo $? => 1
i=-1; i=$((i+1)); echo $? => 0
set -e をしていると、その場で終了してしまうことになる。
計算のみの用途として、安心して使えるのは i=$((i+1)) だ
> while (( i <= 3 )); do
> echo pilaf
> (( i++ ))
> done
((i++)) 【let i=++】と
((i+=1)) 【let i=i+1】と
i=$((i+1)) は
厳密には違う。
i=0; ((i++)); echo $? => 1
i=0; ((i+=1)); echo $? => 0
i=0; i=$((i+1)); echo $? => 0
i=-1; ((i++)); echo $? => 0
i=-1; ((i+=1)); echo $? => 1
i=-1; i=$((i+1)); echo $? => 0
set -e をしていると、その場で終了してしまうことになる。
計算のみの用途として、安心して使えるのは i=$((i+1)) だ
2015/11/25(水) 15:20:15.61ID:zaXwxH/w
よく見たらこの例はiが1から始まってるから大丈夫か。
104ピラフ ◆9Jro6YFwm650
2015/11/25(水) 23:57:59.28ID:qKKURXkV >>102
((φ(・Д´・ *)ホォホォ 勉強になります!!
((φ(・Д´・ *)ホォホォ 勉強になります!!
105ピラフ ◆9Jro6YFwm650
2016/01/01(金) 01:37:32.67ID:OSOvSqc1 ○
/⌒\ (__)
\●/(__)/⌒\
∩ (・∀・ )\●/ あけおめ
Y  ̄ ||y||  ̄`''φ
Lノ /ニ|| ! ソ >
乂/ノ ハ ヽー´
`ー-、__|
/⌒\ (__)
\●/(__)/⌒\
∩ (・∀・ )\●/ あけおめ
Y  ̄ ||y||  ̄`''φ
Lノ /ニ|| ! ソ >
乂/ノ ハ ヽー´
`ー-、__|
106ピラフ ◆9Jro6YFwm650
2016/01/01(金) 01:42:34.66ID:OSOvSqc1 曜日の定数を自動生成しちゃう
for i in $(seq 0 6); do
date -d "$i days" "+%A %w"
done | sort -k 2 | sed -e "s/ /=/" | sed -e "s/^/readonly /"
for i in $(seq 0 6); do
date -d "$i days" "+%A %w"
done | sort -k 2 | sed -e "s/ /=/" | sed -e "s/^/readonly /"
107ピラフ ◆9Jro6YFwm650
2016/01/01(金) 01:43:48.83ID:OSOvSqc1 >>106
結果がこれ
readonly Sunday=0
readonly Monday=1
readonly Tuesday=2
readonly Wednesday=3
readonly Thursday=4
readonly Friday=5
readonly Saturday=6
結果がこれ
readonly Sunday=0
readonly Monday=1
readonly Tuesday=2
readonly Wednesday=3
readonly Thursday=4
readonly Friday=5
readonly Saturday=6
2016/01/05(火) 14:14:58.50ID:tOHAFEvw
2016/01/05(火) 19:46:11.96ID:btsG67QP
bash使うなら曜日名は配列に格納しておいて入ってくる引数を添字として使えばいいんでないの?
レスを投稿する
ニュース
- トランプ米大統領、民主党が勝利すれば「1929年のような大恐慌」が起こると警告 11月3日の中間選挙 債務40兆ドル [お断り★]
- 【GMO攻撃】北朝鮮ハッカーか 複数の痕跡、政府に報告 [煮卵★]
- 【サッカー】エムバペ騒動で中国側が「謝罪が不十分」 リーグなどスポンサー撤退危機で700億円損失か [ゴアマガラ★]
- 【TBS】『VIVANT』冒頭テロップで注意喚起「暴力や国家間の対立を助長する意図は一切ありません」 [Ailuropoda melanoleuca★]
- 東京新聞・望月衣塑子記者の対談本回収へ 朝日出版公表、中学生新聞の川中さん巡る誤記述 [少考さん★]
- 【速報】 GMO系、企業向けID管理サービスで4万5030人の氏名など流出 [お断り★]
- 【実況】博衣こよりのえちえちホロじゃん🧪
- 🏡ダブパン周年フェスティバル開催中🏮👊😅👊🏮
- NNATANT(・o・🍬)🏰
- 「こども万博2026 in なんば」ポーカールームで「こどもディーラー体験会」、大阪府教育委員会及び大阪市教育委員会が後援 [377482965]
- 【湖池屋】国際問題になったTVドラマ「VIVANT」とのコラボを続ける愛国企業、それが湖池屋 [354616885]
- 細野大臣、明日改めて国民に対し3日〜7日分の食料の備蓄を求める「緊急要請」を発布へ いよいよ来るぞ…! [597533159]