【誰も知ってる】 関数型言語 sh, bash

■ このスレッドは過去ログ倉庫に格納されています
2018/03/27(火) 17:18:15.25ID:Isj6qsQb
シェルスクリプト shやbashは関数型言語だから
異論は認めない
2デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:01:42.80ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

FJCIW
3デフォルトの名無しさん
垢版 |
2018/05/26(土) 04:20:57.43ID:NxLTutQ0
今日知った落とし穴 (しかし世界的には有名な事?)

$ cat stdin_test.sh
#!/bin/sh

func() {
 while read s
 do
  echo "func> $s"
 done
}

while read s
do
 echo "> $s"
 func
done <file
$ cat file
1行目
2行目
3行目
$ ./stdin_test.sh
> 1行目
func> 2行目
func> 3行目
$

つまり、while read の内側で呼び出したコマンドや関数が標準入力を読み切ってしまうとループしないということ。
考えてみれば当然の事なのだが実行するコマンドが標準入力から読むことをうっかり忘れているとハマる。
防ぐ方法は上記の場合なら func < /dev/null みたいにするとか、とにかく実行するコマンドの標準入力を
何か別のものに切り替えれば良い。ssh や rsh の場合は -n オプションでも良い。
2018/05/26(土) 06:27:08.08ID:psitaF/5
それは落とし穴でも何でもないような気がするが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況