[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/25 22:56 / Filesize : 258 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その27



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:23.25 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。
 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています
 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/
 (左上の「Shell & Utilities」 から参照することができます。)
・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。
  src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
 質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう
前スレ シェルスクリプト総合 その26
https://mevius.5ch.net/test/read.cgi/unix/1489979246/

521 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 13:44:44.59 .net]
さんざん偉そうだが全くコードを出さないのでお察しでもういいだろう

522 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 14:09:05.24 .net]
>>500
特に指定がない部分に関しては、
自由に変えていいと言ったの

改行が含まれてるとか、カンマやダブルクォートが含まれてるとかは
指定されているので、そこは変えたら駄目

当たり前だろ、ガキみたいな言い訳すんな

523 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 14:10:12.79 .net]
> 自由に変えていいと言ったの
変えていいと言うか、もともと指定がないから
変えるのではなくどんなものでもOKってことだが

524 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 14:11:48.62 .net]
>>502
これには同意する
変えてもいい/変えるべきなのは区切り文字。

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 15:25:33.31 .net]
もういい加減コードで語れ
どれほど偉そうにしてもコードがアレだったらアレだし、偉そうにしてなくても素晴らしいコードはそれだけで尊敬されるだろう。後者が断然かっこいいのに

526 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 16:00:25.01 .net]
意訳 参考にしたいのでコード教えてください

527 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 16:04:12.37 .net]
いや、全然。使わないもの。それも勝手なお題のだし
まあ勉強のためというのでなら、それはあるかもだが、どんなんだかだな。そもそもコードはそういうものだろうし、教えてやるって立場なんだしなw

528 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 16:50:37.25 .net]
>>506
言ってやるなw

529 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 17:10:06.71 .net]
結局一行も書けてない



530 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 17:15:08.96 .net]
ようやくこのスレも静かになるな…

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 17:51:10.54 .net]
そう思うやろ? 次のネタ準備中やで

532 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 17:56:57.42 .net]
なにこいつ

533 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 18:49:50.82 .net]
こいつもしかしてこの間の「標準入力と標準エラー出力を同時に操作したい」のアホか。

534 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/11(月) 18:55:33.57 .net]
これ以上くだらん問答するならコテハンつけてくれ

535 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 03:51:38.30 .net]
>>513
これって解決したんだっけ

536 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 06:46:40.08 .net]
今時Python使わないでわざわざシェル使う理由って?

537 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 08:01:38.11 .net]
Pythonを使う理由が特にないから

538 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 08:37:27.40 .net]
pythonであるコマンドを実行して
それを他のコマンドに流すみたいな
ことが簡単にできたらね

539 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 10:53:58.20 .net]
普通にできるぞ



540 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 11:54:38.75 .net]
>>519
じゃあ、これ相当のことをやってみて


ここまで簡潔に書ける言語をシェルスクリプト以外しらない
シェルスクリプトは(特定の用途に対して)最善だから使ってるんだよ

541 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 11:55:23.82 .net]
>>519
じゃあ、これ相当のことをやってみて

cat /etc/password | grep /bin/bash | cut -d: -f1
(なんかブロックされたからパスワードを大文字にしてる)


ここまで簡潔に書ける言語をシェルスクリプト以外しらない
シェルスクリプトは(特定の用途に対して)最善だから使ってるんだよ

542 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:05:07.20 .net]
>>520
これってどれ?
ここ>>282-以降にある記述だとてんで仕様になってないから、
仕事レベルとまではいかないまでも、
学生演習の問題として出せる程度には仕様をまとめて書いて。

あとPythonに限らずスクリプト言語はどれでも
シェルにパイプ繋いで任意のシェルコマンドが実行できるから、
シェルにできてPythonでできないことなんてないよ。
勿論シェルでできないことも普通にできるし。

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:10:52.66 .net]
大文字w

544 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:12:33.73 .net]
>>522
これは、>>521に訂正しておいた。見れてるやろ?

>>523
多分 /etc/p@ssw0rd がブロックされるんだと思う

545 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:13:42.07 .net]
>>522
> シェルにできてPythonでできないことなんてないよ。

あるよ。
(特定の用途に対して)シェルスクリプトほどに "簡潔にできない"

546 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:14:36.84 .net]
そりゃまあ、冗長でいいなら、アセンブラでなんでも作れますわなw
作れるか作れないかの話なんかしてない

547 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:34:38.85 .net]
>>521
そういうのはperlやawk向きだな。
perl -F: -anle 'print $F[0] if $F[6] eq "/bin/bash"' /etc/passwd
awk -F: '$7=="/bin/bash" {print $1}' /etc/passwd

pythonはもっと汎用言語よりだからずっと長くなる。
こんな感じか?
f = open("/etc/passwd", "r");
for l in f :
 c = l[:-1].split(":")
 if c[6] == "/bin/bash" :
  print(c[0])
ふだんpython書いてないからよくわからん。

専用言語がそれに向いた用途なら、汎用言語よりもコンパクトに書けるのは当たり前。
でなきゃ専用言語の存在価値がない。

でもたとえば改行もデータの一部として扱いたいみたいに向いてない用途だと
書きやすさも長さも逆転したりする。

ひとつの言語にこだわるんじゃなくて、用途に応じて言語を選択するのが
UNIX流だよ。

548 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:43:39.68 .net]
import csv
[p[0] for p in csv.reader(open('/etc/pas@wd'), delimiter=':') if p[-1] == '/bin/bash']

549 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 12:44:23.95 .net]
>>395
>>396
多分\エスケープ云々は途中でなんらか処理をする時にRFC準拠のエスケープだと不都合だからじゃないかな
「Mika says "I'm Happy"」という文を一つのフィールドとして処理するとき
RFC準拠だと
「Mika says ""I'm Happy""」になるけど、例えばこれをsed(1)やらawk(1)に通したいと思ったときは
「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?

そういうことなんじゃないかな。



550 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 13:05:44.44 .net]
>>528
やっぱりそのわかりにくいのが限界ですよね

551 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 13:48:35.13 .net]
>>527
> でもたとえば改行もデータの一部として扱いたいみたいに向いてない用途だと
> 書きやすさも長さも逆転したりする。

まだこだわってんのかw
中身がない反論(?)は惨めなだけやで?

552 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 13:51:53.23 .net]
老害じじいかよ

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 13:55:48.66 .net]
その話続けたければいい加減名前つけろ
NGするから

554 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 13:57:32.52 .net]
だな。なんで、へー、そう書けるんだとかならずに、あれが駄目これが駄目ってばっかなんかな。会話として見ててくもそ面白くない、いらいらすんなw

555 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 14:08:40.82 .net]
>>527
> pythonはもっと汎用言語よりだからずっと長くなる。

汎用言語だから長くなるんじゃなくて、
Pythonには向かない作業だから長くなるっていうのが正解

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:38:07.06 .net]
>>529
RFC準拠ってなんの話してるの?
CSV形式ではないと明確に言われてるのに
まだCSV形式にこだわってるの?

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:40:26.84 .net]
よほどお前がこだわってるな。てかキモいわ

558 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:46:13.86 .net]
俺はレスしただけだけど?
>>529が書かなければ、この話をすることもなかった

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:49:00.93 .net]
新参なので>>513ってなんのこっちゃと、ちょっと前スレの当該箇所を流し読みしてはいた。ふーんてな
で、>>538となんか同じようなのがあったようなww



560 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:51:25.65 .net]
お前の落ち度だってのはわかった

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 18:52:26.75 .net]
>>540
>>538のな?w

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:00:28.24 .net]
自分のことだって自覚してるからレスしたんだろ?

563 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:03:32.17 .net]
へ?
さすが、自分のことだけはよくわかってるな。それはお前がそうだからだろう
何を言っているのかわからん、>>538によく似合うレスだなっていう

564 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:12:05.82 .net]
どうも同一人物みたいだが(>>539に対しての?>>540あたりからも)、だとしたら>>513はすげえなっということでw

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:16:54.17 .net]
自作自演

566 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:18:03.28 .net]
いつまでも俺のこと話題にしつづけてくれ! まで読んだ
自意識過剰すぎてきもい

567 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:21:22.12 .net]
>>546
いやあ、本人はそうは思ってなさそうだけど?自己顕示欲は満々みたいだけど
まあ、話題にしている>>513や俺などに対する当てつけ的になら、なんかすまん

568 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:23:17.23 .net]
自作自演2

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:27:22.55 .net]
なにか気に触るようだな、繰り返しとはwなにが気に触ってるのかさっぱりだな



570 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:37:04.17 .net]
これ以上そのクソを撒き散らすなら大量のコピペでスレ埋め尽くすぞ

571 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:39:25.91 .net]
問題定義をはっきりせずに、回答に対して一方的にダメ出ししてるから当たり前だろ。
>>521 だって awk や perl の解は >>521 とほぼ同程度の記述量なのに
(GECOS に /bin/bash とか書いてあっても誤動作しないという点ではむしろ優れてる)
「シェルスクリプト以外しらない」とかいう視野の狭さを撤回しないし。

ほぼすべてのプログラマーにとってシェルスクリプトってのは
第二・第三言語であって、シェルスクリプトが最適な用途なら使うけど、
そうじゃない場合があることは当然知ってて、
こんな風

572 名前:に威張って使うものじゃないんだよ。

インフラ担当ならシェルスクリプトが第一言語ってのもありうるけど、
そういう場合にはこんなに威張らないよなあ。
[]
[ここ壊れてます]

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:40:09.57 .net]
なんでやねんっwヤツより悪質/ヤツ以下になってどうするねん
まさかお前(てか、ここ一連の)はヤツじゃないよな?

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:42:22.47 .net]
この板ってワッチョイは使えるんだっけ?
次回からいれるか

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 19:42:45.45 .net]
>>551
たぶん、前スレの最初の方で言っていた人のヤツの性質があたり的な
真っ当なやりとりはできなさそうな上に逆に私怨を持ちやすいタイプだから、そういう真っ当なのをちゃんと聞くかどうか怪しいな

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 21:34:04.16 .net]
シェルスクリプトのデバグに関する質問です
eval XXX
というコマンドで実行されるコマンドを確かめるには
evalをechoに置き換えて
echo XXX
とやればいいですかね。
両者の間に、実行されるか表示されるだけかの違い以外の差異はありますか?
例えばある種の展開が行われないとか。

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 22:22:58.09 .net]
eval を echo に書き換えるという方法でデバッグはできるんだけど、
a='echo $PATH'
という状況で
echo $a →「echo $PATH」と表示する
eval $a →「echo /bin:/usr/bin:/usr/local」を実行する
みたいな違いはある。
eval は引数文字列に含まれるシェルのメタキャラクタを再評価するけど、
eval 以外の普通のコマンドではそういうことはないので。

あとデバッグは sh -x スクリプト名(ないしスクリプト先頭で「set -x」)して
実行状況を標準エラーに表示させるってやり方もお勧め。

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 22:40:48.60 .net]
>>556
ありがとうございます。
シングルクオートでも展開されるのは盲点でした。
sh -x
のほうが確実ですね……
訊いてよかったです。

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 22:45:26.76 .net]
>>557
ちなみにevalで再評価されてるシェルのメタキャラクタは
シングルクオートじゃなくて $PATH の $ の方ね。
シングルクオートは代入時に字句解釈されるだけで、
$a の中身には残ってないので。



580 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:19:14.33 .net]
>>551
> >>521 だって awk や perl の解は >>521 とほぼ同程度の記述量なのに
> (GECOS に /bin/bash とか書いてあっても誤動作しないという点ではむしろ優れてる)

いや、そんなことドヤ顔で言われましても・・・
4文字追加で終わりだし

cat /etc/password | grep ':/bin/bash$' | cut -d: -f1

減らそうと思えば減らせるし

grep ':/bin/bash$' /etc/password | cut -d: -f1

あれあれ、じゃあこれ↑は、"grep向き" の問題ってことですかね?w

俺が言ってるシェルスクリプト向きの問題っていうのは
既存のコマンドの実行と組み合わせが簡単に実行できるってことだよ

581 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:34:25.44 .net]
>>551
> ほぼすべてのプログラマーにとってシェルスクリプトってのは
> 第二・第三言語であって、シェルスクリプトが最適な用途なら使うけど、

はぁ?第二とか第三とか何いってんだか。
適切な言語を使うだけの話だろ

シェルスクリプトじゃなくてPythonを使えばいいと言われたから、
"シャルスクリプトで普段やってること" = >>521で書いたような
外部コマンドの実行とそれをパイプでつないで簡単に処理することが
簡単にできるって例に出したのに、

お前は「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
というお題を、awkやperlに置き換えるしpythonで全く違うコードに書き換えるしw

今からでも良いんやで、pythonで
「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
を書いてみなよ。
いいか? catコマンドとgrepコマンドとcutコマンドを
ちゃんと呼び出すんだぞ。今度は間違えるなよw

ほんとシェルスクリプトがなにが得意なのか全くわかってねーわw

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:41:12.01 .net]
な?www

583 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:43:50.91 .net]
な?問題を誤解して的はずれなレスを出すんやで
話にならんわ

584 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:46:19.16 .net]
>>5

585 名前:59
> あれあれ、じゃあこれ↑は、"grep向き" の問題ってことですかね?w

勿論そうだよ。
正規表現で書ける条件だったから、grepでうまくいった。
世の中には正規表現で書けない条件とかも当然あって、そういう場合
perlやawkなら自明にかけるけど、スクリプト言語使わずに
シェルだけで書こうとすると面倒だったりする。

> 俺が言ってるシェルスクリプト向きの問題っていうのは
> 既存のコマンドの実行と組み合わせが簡単に実行できるってことだよ

それに反対してる人は誰もいないと思うよ。
それこそがシェルが特化している応用分野なわけで。
しかし>>521はそれを示す例題としてはよろしくない。
他の言語ならコマンドの組み合わせとかせずに容易に解ける問題だからね。
[]
[ここ壊れてます]

586 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:47:07.64 .net]
お前に言ってない。さすがだなwwいつもその調子。問題出すのもその調子だからなあw

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/12(火) 23:48:09.54 .net]
>>563
真面目だなっ!w
ある意味尊敬(馬鹿にはしてない)

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 00:13:02.23 .net]
>>563
お前が問題を理解できなかっただけのこと

>>516
> 今時Python使わないでわざわざシェル使う理由って?

俺はこれ↑に対して、シェルスクリプトの方が適した問題だからって
コマンドをつなげて実行できるのが簡単だと↓以下のように>>518でレスしたわけだが

> pythonであるコマンドを実行して
> それを他のコマンドに流すみたいな
> ことが簡単にできたらね

結局、だから俺が最初から言ってるように、シェルスクリプトの方が
適してるんだろ? ならもうお前口塞げ、混ぜっ返してるだけでなにも役に立ってない

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 00:20:43.06 .net]
>>563
あとなやっぱりわかってないわお前

grepもperlもawkもコマンドなんだよ。
シェルスクリプトっていうのは、そのコマンドを
"組み合わせる"のが得意って話だ。

だからgrepもperlもawkもシェルスクリプトのパワーの一つなんだよ。
もちそんそれだけじゃない。便利な多くのコマンドが
用意されてる。それらはシェルスクリプトの関数であると言える

pythonで、せっかく用意されたこれらのコマンドを使わないで
python用ライブラリとか使って冗長にコードを書くならそれは無駄だし
コマンドを使う場合でも、シェルスクリプトほど簡潔にできない。

シェルスクリプト(grep, perl, awkを組み合わせること)
VS
python(grep, perl, awkコマンドを使う もしくは 使わない)

って話であって、perlの方が〜awkの方が〜っていうのは
シェルスクリプトの方がシンプルに書けることの反論になってないんだよ。



590 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 00:23:56.99 .net]
なんか変な人が居着いちゃった

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 00:24:50.12 .net]
>>568
前からやで。ずっといついている

ずっと前から俺はいる

592 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:18:17.08 .net]
IDもワッチョイもないからオレオレ言われてもレスの時系列で追えないし面倒だわ

まあキチガイ君がお題の条件だしが決定的に出来ない子なのはよく分かる
>「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
>521読んで道程まで完全に一致させろいう意図だと理解できたやつがいたら天才だわ
普段から人と会話してなさそう

593 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:27:58.12 .net]
>>521
grep /bin/bash </etc/password | cut -d: -f1

594 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:32:08.64 .net]
>>570

>>518を読んでいればわかるだろ

> pythonであるコマンドを実行して
> それを他のコマンドに流すみたいな
> ことが簡単にできたらね

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:38:12.94 .net]
普段から人と会話してなさそうが如実

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:40:17.86 .net]
そういう悪口しか言えなくなったらおしまい

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 01:55:40.86 .net]
そろそろ名前つけてくれませんかね

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 02:14:43.53 .net]
POSIX shで絶対値をなるべく簡単に扱いたいんだけどいい方法ありますかね
exprコマンドにabsとかがあればよかったんだけども

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 02:31:02.70 .net]
>>571
入力側のリダイレクトって読みにくいので、自分もcatで書くかも



600 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 03:18:10.80 .net]
>>575
いやでござるwww

>>576
マイナスだけでいいなら
echo ${a#-}

プラスも考慮するなら
echo $((${a#-}))

601 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 03:20:58.92 .net]
お前じゃないよ自意識過剰

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 05:05:47.59 .net]
>>576
こんなのどうだろう
$(((0 < a)?a:a * -1))
(aに値を代入)

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 05:23:49.94 .net]
なんで俺が短く書いたのに、わざわざ冗長なコード書くかね?
しかも三項演算子を使ってもっと短くかけるし

$(((0 < a)?a:a * -1))
$((a>0?a:-a))
$((${a#-}))
${a#-}

604 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 06:09:33.52 .net]
>>581
おまえのコードは本質的じゃない
彼が望むのは「絶対値」であって「マイナスを除いたもの」ではない
OK?
分かったらひっこんでろ低能
もしこれに反論があったら「分かってない」ことになるからな?

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 06:26:16.58 .net]
>>582
わかってないのはお前では?

つーか、その反論されたら困るからって
「反論したら俺のかちー」みたいな言い方やめた方がいいよ
恥ずかしいw

俺は反論したから、さあ、次はお前が反論する番だ

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 06:48:30.93 .net]
なんで阿呆が二人に増えるんだよ

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:16:13.42 .net]
もう消えろお前ら
このスレに相応しくない
なんだよ最近のこのスレの雰囲気最悪じゃねーか
長文ダラダラ返信長々と最後にレスしたほうが勝ちみたいな古い争いしやがってからに

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:17:03.30 .net]
ヒント:一人二役

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:17:43.72 .net]
>>577
簡潔に書きたいというお題じゃなかったのか



610 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:31:11.05 .net]
>>577
<をどこに書いてもいいことはあまり知られていない。
</etc/password grep /bin/bash | cut -d: -f1

611 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:38:00.62 .net]
いや読みにくいって話であってだな

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:45:03.32 .net]
>>577
そりゃあんたの頭のレベルが低いからだと思うよ

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 08:58:22.24 .net]
>583の脳内では全く論がない噛みつくだけの行為も反「論」になるらしい
これもう日本語が分かってないってレベルじゃないな
ただの小学生だわ

614 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 09:13:46.26 .net]
小学生なら簡単に構ってちゃんになりそうなのはわかるな。もう構うなw

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 09:49:23.22 .net]
GNU grep なら

$ grep -Po '^.+?(?=:.+:/bin/bash$)' /etc/passwd

616 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 09:56:16.86 .net]
>>591
論じゃなければ、何か言い返せよって言うだけの話だけど?
ほんと本質じゃないどうでもいい所にしか反応しないのなw

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 10:00:11.88 .net]
さいごにレスしたぼくがしょうりなんだ!

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 10:17:30.52 .net]
>>595
違うと思うぞw

でもあんたはそう思ったから、書き込んだんだよね

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 10:21:55.43 .net]
なんにでもレスするやつ



620 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 10:56:37.40 .net]
レスしなきゃ負けると信じてるみたいだからしょうがないね

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 11:34:13.17 .net]
$ cat <<. <<.
1AAA
.
2BBB
.
とやると
2BBB
とだけ出力されるんだけど、これどういう理屈か分かる?
標準入力ってヒアドキュメントでさえ上書きされる仕様なの?

622 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 11:42:05.35 .net]
strace で見ると 2BBB だけ read してるな(1AAA は無視)。

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 12:01:06.03 .net]
>>598
なるほど。だから「さいごに〜」とか話に全く関係ないことを言い出したのねw

>>599
ヒアドキュメントって標準入力として読み取るものでしょ?
そこは何らおかしくない

cat < /proc/loadavg < /proc/uptime
ってかいて、/proc/uptime からしか読み込まないのと一緒だと思うよ

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 12:22:00.85 .net]
>>595
0x03e8 ばんさえとれればあなたのしょうりです。

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 16:23:41.49 .net]
>>601
なるほどね
$ somecmd < a.file < b.file
↑これでb.fileしか読み込まれないのも(やったことなかったから)知らなかった。
ありがとう

626 名前: []
[ここ壊れてます]

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 16:51:47.47 .net]
リダイレクトは引数じゃないからね
実質これと同じわけだし

exec </proc/loadavg
exec </proc/uptime
cat

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 17:56:57.18 .net]
>>604
なるほど、納得

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 18:05:22.98 .net]
>>593
を〜、grep -oで切り出しできるのね
久々にこのスレで参考になりました



630 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/13(水) 18:44:51.04 .net]
なんか嫌らしい感じ

631 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 18:54:32.62 .net]
コロンを含むディレクトリを$PATHに登録した場合ってどういう挙動になるんだろう

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 20:11:28.93 .net]
コロンがセパレータなのでそこで分かれる

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 20:52:33.17 .net]
findでexecオプションの引数のあとにシェルに渡すパイプを付けるとexecに渡したコマンドがシグナル13パイプ破壊を出してくるんですけど
どうにかなりませんかね。
今のところ/dev/nullに標準エラー出力を捨てることで解決してるんですけども。
find . -exec basename \{\} \; | head
↑これで再現するはずです。
解決するときはできればPOSIXの範囲でやりたいです。findのGNU拡張で解決できるならそれでもいいんですが
メインPCがOS Xなので、最低でもBSD拡張、さらに言えばPOSIXに限定してほしいです すいません。

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 21:25:25.31 .net]
macOSだが再現しないなあ

635 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:13:02.03 .net]
FreeBSDは再現しない。
CentOSは再現した。
対策は後で考える。

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:18:48.70 .net]
なにか最近やけに POSIX にこだわってる奴が多いが同一人物か?

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:31:37.92 .net]
>>613
単純にPOSIXの価値というかシェルスクリプト全体の有用性が見直されているだけでは
たとえば*BSDのスレでGNUライセンスに拘ったレスが連続するのはおかしいが
BSDライセンスを重視するスレがたくさんあっても別におかしくはないだろう

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:32:42.05 .net]
パイプでなのでfindとhead が同時にプロセスとして存在
findが標準出力に出力するとパイプを通して/パイプとして繋がってるheadの標準入力に入力として
headが目的を達して終了=パイプが無くなる、だがしかし、findは出力を続けようとし出力しようとしたらパイプが壊れてるうううっ

普通何もしなくても、パイプが損失したらSIGPIPEが飛んできて(強制)終了するんだけど(フィルタとしてもなUNIX的な望ましいデフォルト動作)、なぜかSIGPIPE無視して続けようという謎動作?

findとheadが直接は繋がっていなくてかもしれんが。パイプの送出側がSIGPIPEを無視って謎動作なのは変わらないかな

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:38:09.62 .net]
>>615
basenameが標準出力につながってるだけだから、findはwriteしないのでSIGPIPEを受け取らないよ。
basenameが事故死したのをfindが報告してるだけ。

というわけで、basenameが事故死したらfindを続けるのをやめるようにしてみた。
この方が無駄にbasenameを続けるよりよかろう。
find /var \( -exec basename {} \; -o -quit \) | head
ただし、最初の事故死についてだけはfindがおせっかいに報告してしまう。

あとはまかせた。



640 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:41:30.04 .net]
>>616
そのへんが実装によりちょっと違うってとこなのかなあ。出る出ないは

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:48:28.09 .net]
>>613
自分側で「なにか違って」動かなかったらめんどくさいってだけじゃないの、単に

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:49:53.08 .net]
>>610

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:50:38.44 .net]
CentOS$ strings /bin/find | grep -i signal
signal
%s terminated by signal %d
FreeBSD$ strings /

644 名前:usr/bin/find | grep -i signal
なんもなし

以上、findのおせっかい度の差。
[]
[ここ壊れてます]

645 名前:619 mailto:sage [2018/06/14(木) 22:51:53.48 .net]
すまん間違えて送信しちゃった
$ find /etc -exec sh -c 'basename {}' \; | head
これでどうだろう。
-quitオプションはPOSIXの範疇ではないけどこれはPOSIXに準拠してる
ちなみに>>610のコマンドラインはDebian GNU/Linuxのfind 4.7で再現した。

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:55:42.54 .net]
>>619,620
なーるほどっ
ww
なるほどっ、なっとく

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/14(木) 22:57:07.67 .net]
>>621
ん? それSIGPIPEは回避できるけど別の問題が発生しない?
「basename: 余分な演算子 XXX」←みたいに怒られるんだが
あと
$ find /etc -exec sh -c 'echo {}' \; | head
↑これをやるとやっぱりSIGPIPEが出されるようだ。

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 00:01:24.90 .net]
>>613
どこかの先生が課題にそう書いてるんだろう。
ちゃんと調べないで持ってくるバカ学生が多いんじゃないの。

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 00:03:14.56 .net]
>>610
>findでexecオプションの引数のあとにシェルに渡すパイプを付けるとexecに渡したコマンドがシグナル13パイプ破壊を出してくるんですけど

この動作は、POSIX的にはどうなの?
まずいというならPOSIX的にどうまずいの?



650 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 00:08:14.14 .net]
find . -exec basename \{\} \; | { head; cat >/dev/null; }

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 00:14:45.23 .net]
>>626
どういう仕組みなん?

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 00:39:45.42 .net]
-execにこだわりがないのであれば、
find . -print0 | xargs -0 -L 1 basename | head
今度はxargsがお節介メッセージ出すけど、findはheadが終了したら終了する

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 01:01:37.95 .net]
xargs(1)に-0オプションはない(POSIX厨)

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 02:22:41.09 .net]
findにも-print0は無いけどな。BSDにもあるからいいんじゃね

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 08:25:40.13 .net]
find . -print | xargs -n1 basename 2>/dev/null | head

656 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 20:58:34.50 .net]
execオプションはやめといたほうがいいね

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 21:35:58.85 .net]
元々何が気に入らなかったのかイマイチわからない

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 22:35:17.99 .net]
POSIX的に気に入らない

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 23:11:38.57 .net]
POSIX POSIXうっせー



660 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/15(金) 23:13:05.02 .net]
>>634
こういうPOSIXにやたらこだわってるのって
なにかの精神障碍があるんじゃないの?
一度そういう病院で診てもらえ。

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 00:18:50.65 .net]
findutilsのソース取って来てあのメッセージ出ないようにパッチして使っちゃえよもう
git.savannah.gnu.org/cgit/findutils.git/tree/find/exec.c?h=v4.6.0#n354

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 00:33:50.14 .net]
>>616
find . -exec sh -c 'trap "exit" pipe; basename {}' \; -o -quit | head

663 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 01:07:40.99 .net]
>>638
試してないけど、trapせずにbasenameのあとにexitするだけでだめなん?

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 08:33:03.61 .net]
find /etc -exec basename \{\} \; |& head
これでエラーも出ず余計な出力も引っ掛らなかったんだけど
理屈が分からん
|& は標準出力と標準エラー出力両方を通すはずなので
SIGPIPEのエラーが出力されるはずだがgrepしても見当らない

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 10:03:37.06 .net]
find自身がSIGPIPEで終了してんじゃない
実行時間も短くなってるし

666 名前:640 mailto:sage [2018/06/16(土) 10:31:40.54 .net]
>>641
すいません。それどうやって確かめたらいいですかね

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 10:39:12.35 .net]
Linux なら strace で見ると分かる

$ strace -f bash -c 'find /etc -exec basename \{\} \; |& head'

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 11:10:29.82 .net]
stderrが(標準出力)のパイプになりの、そのパイプが無くなり、find自身がエラーメッセージをそれに書き込もうとしてSIGPIPEを受けるってとこか
find . -exec basename {} \; -o -print | head
としても同じように終わるってとこで

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 12:55:30.00 .net]
>>644
ほほう



670 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 13:02:42.26 .net]
>>640
だれかこれをmacOSでやってくれない?
あれは確かSIGPIPEを受けとらないから
GNU findと違ってこの書き方だと不具合が起こりそうだ

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 13:15:44.53 .net]
>>646
>あれは確かSIGPIPEを受けとらない
いや、それはないだろう。単に>>621の違いじゃないの
macOS Sierra標準のbashはまだ |& をサポートしてないヤツみたいなので(??)、2>&1 | としたが同じくfindは終わる

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 13:16:47.78 .net]
>>647
× >>621
>>620

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 13:26:10.67 .net]
ああ、|& は元々はzshのなのか(?)
macOS Sierra標準のzshでは/でも、>>640のままで特に何も問題なく終わった

674 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 14:10:29.68 .net]
>>649
|&はcsh由来。zshはパクっただけ。

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 17:20:45.43 .net]
|&はPOSIXなの?

676 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 17:32:28.45 .net]
やかましいわっw、おばかさん

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 17:58:54.17 .net]
それはPOSIXですか?POSIXじゃないのですか?

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 18:00:34.28 .net]
ところで俺のPOSIXを見てくれ。こいつをどう思う?

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 18:14:03.11 .net]
すごく、標準的です



680 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 18:39:24.01 .net]
Is it POSIX?

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 18:58:44.20 .net]
No, it is Apple

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 19:58:16.75 .net]
まあPOSIXじゃないので質問者の要請は満たしてないよね
俺が提案するとしたらexecは使わず
find . | xargs -I @ basename @ | head
↑これ。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:06:12.48 .net]
それじゃあかんだろ。xargsのオプションが足りない

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:09:55.36 .net]
いいのか。すまん

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:37:42.14 .net]
俺がやるなら xargs -I には {} を 指定するがな
@というのは見たことがない 社内規約かなにかかな?

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:51:48.06 .net]
>>656-657
定冠詞がないよ

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:56:44.95 .net]
この問題って本質的には、 find は /etc の下の全部のファイル(10以上)を返すが、
head は 10行で打ち切ってしまうという矛盾にある。
そこは目をつぶるって方針なんだから、最初に書いてあったstderrを捨てるって
方法で正しいと思うよ

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 20:59:20.95 .net]
>>658
xargs: basename: terminated by signal 13 って表示されちゃう
>>661
俺は @ しか使ったことがない

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 21:30:02.51 .net]
>>662
バッカこれはどっちも形容詞だよ
だからネタとして成立してんじゃん



690 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 22:02:52.02 .net]
>>662
マジレスアッポー

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 23:19:14.74 .net]
コマンドの重複を数える(つまり$PATHに登録され実行可能なファイルの重複を列挙する)一番短い方法をってなんでしょう。ただし確実に動作しかつ可搬であることが条件です。
僕が考えたのは
$ echo $PATH | tr ':' '\n' | xargs -I @ find @ \( -type f -a -perm -+x \) -exec basename \{\} \; | sort | uniq -c
です。

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 23:24:18.70 .net]
basenameにしたらファイル名じゃなくなるじゃん

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/16(土) 23:36:17.54 .net]
>>668

もしかして-type fが見えてないだけ?

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 04:18:06.91 .net]
パスの中に空白が入ってる or PATHの中身が多すぎたらおそらくアウト
( IFS=:; find $PATH -type f -a -perm -+x ) | sed 's|.*/||g' | sort | uniq -c

( IFS=:; for i in $PATH; do find "$i" -type f -a -perm -+x; done ) | sed 's|.*/||g' | sort | uniq -c

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 08:19:10.40 .net]
できればsedでやりたいことなんですが
aaa
<<
bbb
>>
もしくは
aaa
<<bbb>>


696 名前:ニいうようなファイルがあったとしてaaaの次行から「>>」を含む行までを読み出したいです。
(aaaが存在する行はすでに具体的な数値で判明しています; ここでは42行目とします)
特に二番目の場合には sed -n -e '43,/>>/p'とやると43行目に「>>」があるのに見つけてくれません。
なにか手助けをおねがいします。
[]
[ここ壊れてます]

697 名前:名無しさん@お腹いっぱい。 [2018/06/17(日) 09:24:18.61 .net]
>>671
sed -e '42,/>>/!d' -e 42d

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 12:39:57.71 .net]
あれんじ
sed -e '43,$!d;/>>/q'

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 14:39:23.57 .net]
標準規約に従いましょう

GNU Coding Standards
https://www.gnu.org/prep/standards/standards.html



700 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 14:43:41.30 .net]
言いたいことがわからない

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 16:46:05.17 .net]
言っても無駄なんだろうが、そんなファイルを処理しようってのが間違ってると思う

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:18:43.97 .net]
>>676
処理したい時はどうすればいいですかね。

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:23:59.83 .net]
POSIXで。

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:24:04.76 .net]
Windowsだと%TEMP%で一時ファイルの格納場所が指定できますがUnixではそういう環境変数はないのですか?
$TEMPとか

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:27:47.07 .net]
>>669
basenameって拡張子消えるよね?

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:28:33.83 .net]
>>679
誰に対して使用して欲しいのか分からないな

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:40:16.19 .net]
>>680
消せと言えばね

708 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:43:21.15 .net]
>>679
TMPDIR
かな
/tmp
が古からあるからな。TMPDIRが設定されていたら(OSとして初期設定されているか、なんらかの形でTMPDIR設定されてたら)TMPDIR。設定されてなかったら普通に /tmp かな

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 19:45:54.91 .net]
>>679,683
>TMPDIRが設定されていたら〜
って、TMPDIRを意識していればね。当然のように、んなの知らん、/tmp 一択ってのも普通にある



710 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 20:07:00.69 .net]
>>681
一応、TMPDIRはPOSIX標準環境変数らしい。 tmpfile(3)やmkstem(3)なんぞはPOSIXとしてはTMPDIRを参照しろとはなってないらしい
が、実装するならTMPDIR参照するだろうし、してる。ちゃんとtmpfile(3)やmkstem(3)やmktemp(1)などを使っていれば、誰でもなんだろうけどね

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 20:58:57.79 .net]
>>685
それってPOSIX shellの話なの?

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 21:18:57.03 .net]
シェルじゃなくてシステム

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 21:19:01.81 .net]
>>686
何を聞いてるのかわからん

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 21:19:45.24 .net]
俺…POSIXだったのか…?

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 21:59:03.03 .net]
関数のなかってalias使えないっぽいね
somefnc() {
  alias AAA='pwd'

  AAA
}
# → AAA: command not found

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/17(日) 23:04:57.63 .net]
6.6 Aliases
...
Aliases are expanded when a function definition is read, not when the function is executed, because a function
definition is itself a compound command. As a consequence, aliases defined in a function are not available until
after that function is executed.

somefnc () { alias AAA='pwd'; }
somefnc
AAA
otherfnc () { AAA; }
otherfnc

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 03:25:19.77 .net]
aaa="cat /etc/*release | grep -E '^NAME='"
echo ${aaa}

上を実行すると、
$ ./hoge.sh
cat /etc/os-release | grep -E '^NAME='
こうなってしまいます。
cat 〜の結果をaaaに入れる方法教えて欲しいです。

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 03:35:59.29 .net]
自己レス
evalで出来ました

719 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 07:01: ]
[ここ壊れてます]



720 名前:47.43 .net mailto: >>690
関数の中でaliasが使えないと言うよりか、
関数の定義が実行された時点でのalias情報が反映される。

つまりシェルスクリプトを上から実行していって、
somefunc()関数定義文が見つかると、
この関数 "全体" に対して、alias展開処理が行われてから関数が定義される

だからsomefunc()関数定義文よりも前にaliasが設定されていれば
そのとおりに展開されるが、関数の中はすでにalias展開済みなので
もう処理されない
[]
[ここ壊れてます]

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 07:11:33.65 .net]
ちなみにこれだとうまくいく

somefnc() {
  alias AAA='pwd'

  eval AAA
}

evalは実行する段階でalias展開されるようだ
evalで実行する文は、実行段階ならないと
わからないのだから当然ではあるが

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 08:15:26.93 .net]
>>695
すげぇ!ありがとう
ちなみに今さっきの地震に伴う停電のせいでパソコンがおしゃかになったっぽいので
試せないw

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 09:27:00.32 .net]
なるほど。大阪だけにおしゃかになったわけだな

724 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 09:36:50.09 .net]
は?

725 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 09:40:49.35 .net]
うちの研究室もすごいことになった。
ところで前々から関数のなかで alias が展開されないのを歯痒くおもっていたので
eval 使えばいいというのは非常に有益な Tips だわ。

726 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:09:39.01 .net]
あまりにもPOSIX、POSIXしつこいから、POSIXでNGにしたったわ

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:13:14.51 .net]
PSOIXでいこう

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:15:28.33 .net]
P0SIX(いやがらせ)

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:20:36.56 .net]
P051X



730 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 10:23:39.71 .net]
ぽじっくす

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/18(月) 17:53:22.33 .net]
>>699
makefile とか crontab でもエイリアス無視だけど
evalならいけるのかな
試してみよう

732 名前:名無しさん@お腹いっぱい。 [2018/06/18(月) 20:47:12.93 .net]
oldcar-purchase.com/

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 04:10:29.03 .net]
関数の中、もしくはmakefileやcrontabで
aliasを使いたい状況っていうのがよくわからないが
どんなときに使うの?
aliasではなく変数とかじゃ駄目なの?

734 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 04:54:42.99 .net]
自分は引数を取らず固定されたフィルタはaliasで定義することにしている
例えばeraelコマンド(ERAce Empty Line)。
alias erael='sed -e "/^$/d"'
ただ大抵はシェルスクリプトの先頭に記述するのであなたの言う通り関数の中で宣言する意図は分からん。

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 05:16:14.31 .net]
つづりeraseやで

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 05:53:06.78 .net]
>>708
使い方としてはわかったけど、
ぶっちゃけそれだって関数作ればいいだけなんだよなぁ

erase() { sed -e "/^$/d" "$@"; }

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:00:33.38 .net]
>>710
いやそうなんだけど
「引数を取らず固定されたフィルタ」
↑これを実現するのに関数は大仰な気がしてきてな。

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:15:17.17 .net]
関数とエイリアスの使い分けに意味はあるの?
使用メモリ?性能?

739 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 06:31:47.07 .net]
>>712
いやまったく大差ない。
ただただaliasというだけ
分かってると思うが俺は別に「使え!」なんて言ってないから
そんな気にする必要ないぜ。
個人的な問題だから。



740 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:04:14.39 .net]
みんな知ってるかい?
関数の中で関数を定義できるってことを

foo() {
 bar() {
  echo bar
 }
}

foo
bar

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:22:52.49 .net]
全角字下げやめてくれ
コピペで試せん

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 07:27:20.24 .net]
foo() {
bar() {
echo bar
}
}

foo
bar

743 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 08:03:40.13 .net]
5chに貼られたソースコードをコピペするってwセキュリティ意識ゼロかよw
絶対こんなの相手に発注したく

744 名前:ヒぇww []
[ここ壊れてます]

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 13:37:44.18 .net]
アクalias飲みてぇ

746 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/19(火) 18:46:56.46 .net]
>>717
たかが数行のソースが危険かどうかもわからん奴には発注したくないな

747 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 02:21:04.28 .net]
somefunc() {
 echo "${1:='need a arg'}"
}
のような関数を作ったのですが引数なしで起動すると
-bash: $1: この方法で割当はできません
と怒られるのですがどうすればいいですかね。

748 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 03:20:33.94 .net]
somefunc() {
 arg="$1"
 echo "${arg:='need a arg'}"
}

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 03:34:23.66 .net]
>>721
ありがとうございます!
できました!
すいませんが、もしよければなぜ直接引数に:=変数置換を適用できないのか教えていただけないでしょうか。
例えば${1:-aaa}などはごく普通にできるので、不思議です。



750 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 05:12:57.83 .net]
bash: $1: この方法で割当はできません
bash: $1: cannot assign in this way

代入文を使って位置パラメータへの代入を行うことはできません。
Positional parameters may not be assigned to with assignment statements.

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 06:53:00.27 .net]
すべての言語で引数に対する代入は禁止されればいいのに

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 07:57:59.37 .net]
引数に代入できる言語って例えば?

753 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 08:43:18.41 .net]
ば…bat

754 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 10:20:31.09 .net]
それ言語?

755 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 11:38:13.87 .net]
Cだとargvは一度どこかに書き出さないと置換とか操作できないよね。

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:45:30.95 .net]
>>728
別に直接書き換えもできる。constを「自分で」付ければできないようにもできるけど
Cで書き換えるのは危険すぎるだけだな。配列/文字列等のメモリ境界保護なんてないから。OSによってはargvがメモリ保護域にあるのもあるだろけど

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:48:49.26 .net]
>>728
argv の指す先は変更できないけど argv 自体は変更し放題

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 12:56:35.45 .net]
>>730
argvの指す先(char **argv/*argv[]の中身/値でいいの?)も変更できるよ
argv = myArgv;
argv[1] = myArg;
argv[1][0] = myChar;
どれもできる

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/20(水) 15:25:21.41 .net]
ああそうか。728だけど,すごいまぬけな発言をしてたわ。
Cでのargvはあくまで約束事としての変数名だからなんの保護・制約も掛けられてないのか。
一方シェルスクリプトでは引数変数を明確に他と区別できるようになってる。
ただし半保護状態。



760 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 05:57:06.66 .net]
script(1)コマンドかそれと似たCLI記録ツールで、
~/.profile(←ここに~/.bashrcなどを読みこむコマンドが書いてある)を読み込ませたいのですがどうすればいいですかね。

761 名前:名無しさん@お腹いっぱい。 [2018/06/21(木) 06:34:26.14 .net]
>>733
#!/bin/sh
exec /bin/bash --init-file "$HOME"/.profile "$@"

こういうスクリプトを書く
ファイル名を mysh でホームに保存したとして、次のようにして script に使わせる

env SHELL="$HOME"/mysh script

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 08:42:01.32 .net]
>>733
surce ~/.profile ではだめなの?

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:33:47.42 .net]
&#10005; surce
△ source
◯ .

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:34:32.68 .net]
1行目は×な。

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 09:45:45.51 .net]
bashの場合、インタラクティブでログインシェルでなければ.bashrcを読むはずだけど、それじゃ足らんの?

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 15:08:24.51 .net]
>>734
ありがとうございます!
できました!

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 15:25:56.39 .net]
733です。すいません。もうひとつ訊きたいことがあるのですが
script(1)実行中はCO

768 名前:LUMNS=80,LINES=25に固定したいです。
しかしそのmyshに
export COLUMNS=80
などと記述しても反映されません。
~/.profileなどでは特にCOLUMNSの値を設定している訳ではないです。
これどうすればいいですかね
[]
[ここ壊れてます]

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/21(木) 17:29:46.87 .net]
stty cols 80 rows 25
なんかLINESもってとこから、ターミナルのウィンドウサイズなんぞもってぽいけど、それは個々のターミナルアプリ次第&一方通行っぽい(COLUMNSの値を設定している訳ではないのはそゆこと)けど



770 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 07:10:56.19 .net]
シェルスクリプトってeval使えばメタプログラミングっぽいことできるよね。
例えば引数をfor文で増加さしてeval arg$i=\$$iみたいな。

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 08:39:33.18 .net]
>>742
evalはインタープリタそのものだからね

772 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 08:56:09.19 .net]
evalは一番最初に現れたプリミティブなメタプログラミング機能だからまあ当然だな。
ちな最初にeval を発明した言語はLisp な。

773 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/22(金) 15:33:32.30 .net]
eval is evilを発明したのはLISPか

774 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 05:10:08.14 .net]
eval is evilはJSでは

775 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 10:04:22.34 .net]
evalは強力すぎて危険だからどの言語でも濫用はevil扱いだと思う。
REPLみたいにevalがぴったりした応用もあるから禁止はできんし、
シェルスクリプトは比較的ミニマムな言語だからevalしか解がないケースも多いけど。

776 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 11:22:58.87 .net]
「ミニマルな言語」って他には例えばなに?
それLLとはまた違うの?
いや煽ってるんではなくて単純に訊ねたい。

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 11:42:26.04 .net]
コマンド置換の入れ子の限界を試そうと思って
$ i=1; while true; do echo $i; eval $( (yes '$(echo' | head -n $i | tr -d '\n'); (yes ')' | head -n $i | tr -d '\n') ); : $((i++)); done
↑こんなコードを実行してみた。
100あたりから面白いくらいに遅くなっていく
しかし500くらいまで試したけど表示は続き、限界を探る目的は達成できなかった。

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 13:19:07.15 .net]
ミニマムはすき

779 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 14:46:23.27 .net]
eval関連なんですがaliasの出力結果をevalする方法を教えてください。
具体的にはroot権限でlsがしたいのですが、その時通常のlsと同じオプションを付けて実行したいのです。
ですので(通常の状態での)alias lsの結果を変数かなにかに格納してそれを実行しようと思ったのですが良い方法が思い付きません。
そのコマンド自体もaliasにしたい(具体的にはls@rootコマンドとしてalias ls@root=の形で定義したい)です。

どうかよろしくお願いします。



780 名前:752 mailto:sage [2018/06/23(土) 14:52:25.95 .net]
すいません。一番上の行は無視してください。
evalでできるかなと考えてたプロセスが漏れてしまっただけです。
多分このアプローチは間違っているので無視してください。

781 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 19:13:35.47 .net]
>>750
偽物臭強いけどなw
ただ身長が小さいだけじゃないかっつー
本物双子のやつは結構好き

782 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/23(土) 19:18:52.33 .net]
>>751
普通にぐぐれ

783 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 00:39:25.04 .net]
>>751
aliasでなくてsudo使って関数定義するのがいいと思うけどだめなの?

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 07:01:44.49 .net]
LS=`alias ls`
じゃだめなの?

785 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 09:15:58.74 .net]
>>753
詳しく

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 10:16:34.78 .net]
/tmpでいいじゃん

787 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/24(日) 22:14:10.69 .net]
>>748
データ型が少ないって意味でTclとかかな。
でもTclには文字列型の他に連想配列があるのよね。
POSIX shellの範囲内だと引数配列を除けばホントに文字列しかないので。

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 16:44:06.12 .net]


789 名前:アんにちは

ド素人です。
VPSの立ち上げ時にスタートアップシェルスクリプトを使って効率化したいです。

とあるwgetを叩くと、user名とパスワード、パスワードの再入力を求められるのですが、
このuser名、パスワードをシェルスクリプトで入力させるにはどうしたらよいでしょうか。
[]
[ここ壊れてます]



790 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:04:46.28 .net]
wgetでgithub上にある既存のシェルスクリプトを叩くと
ユーザー名とパスワードを聞かれるのですが、
その入力を自動化したいという意味です。

github上のシェルスクリプトは変更できません・・・

791 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:16:35.68 .net]
wgetでシェルスクリプト叩くてどういう意味?
出力をシェルに流し込むって事?

792 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:25:22.13 .net]
なんかパスワード 自動入力 あたりでggったらすぐ出てきそうやな

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:29:12.30 .net]
>>761
相手側の要求に従ったuser名パスワードの提供方法をwgetでするとよいでしょう
どのVPS?どういう相手側のサービス?その使ったというはGitHubのどれ?
https://gist.github.com/kevinold/216077/4d725773b46a2ac32c0f5a689339d3da004d7f5d
これでいいのか?適当にぐぐったらVPSだしwget使ってるしw

>>762
まあ、なんかセットアップでコマンド叩いたりするのだろう。そういえばwgetで認証できなかったら再入力なんて求められないよな...??あったかな??

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 17:55:18.59 .net]
wgetは--userと--passwordでユーザー名とパスワードを指定できるはずだけど

795 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:04:40.17 .net]
httpのBASIC認証やftpのならそれで問題はないよね。普通にBASIC認証でそのオプションを教えてっていうことだけかな

796 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 18:12:51.93 .net]
manくらい嫁カス案件

797 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 19:26:12.11 .net]
wgetが書かれたシェルスクリプトを呼び出すシェルスクリプトを書きたいように見えるが…
まあ質問が日本語的に不自由すぎるね

798 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 20:51:22.89 .net]
wgetがBASIC認証を要求してくるんですが、
パスワードをシェルスクリプトに書きたくないです。
別ファイルに生パスワードを書くのも嫌です。
かといって毎回入力するのは面倒です。

ssh-agent利用して最初に一回いれて覚えさせるだけで
あとはパスワードなしにできたりしないですかね?

799 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:11:05.80 .net]
ssh-agent/ssh-keychainはどうなんだろ、無理じゃねと思うが、keyring(Linux/BSD)/Keychain Access(macOS)を使えばふつーにできるだろうな



800 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:17:58.64 .net]
最初の質問と内容か変わってるし、パスワード書きたくないらしいので、役にたたないだろうけど、俺ならexpectでスクリプト書く

801 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 21:25:16.46 .net]
最初の質問者と別人じゃね?レスの書き方から同一人物にも見えるけどw

802 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/26(火) 22:26:52.66 .net]
まあなんか知らんがもっとドキュメントに当たったらって気がする

803 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:07.84 .net]
jqについて教えてください。

https://ideone.com/SZlhR4

やり方が分からないので、以下のようにとりあえすyenを指定したら並び順が思ったようになりませんでした。
$ cat kudamono.json | jq -r '.genre_name, .list[].name, .list[].hinshu_list[].yen'

くだもの
りんご
みかん
いちご
180
500
200
50
63
300
null
null
null

続く

804 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 00:54:30.18 .net]
以下のように標準出力に出す方法を教えてください。

くだもの
りんご
ふじ
180
サンふじ
500
つがる
200
みかん
きんかん
50
いよかん
63
せとみ
300
いちご
あまおう
null
ひのしずく
null
とちおとめ
null

805 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 01:36:22.49 .net]
>>772
別の人ですよー。

806 名前:竄閧スいことを思い出したので、書いてみたの♪ []
[ここ壊れてます]

807 名前:名無しさん@お腹いっぱい。 [2018/06/27(水) 03:13:21.88 .net]
>>774-775
. | .genre_name, (.list[] | .name, (.hinshu_list[] | .hinshu, .yen))

https://stedolan.github.io/jq/tutorial/ https://stedolan.github.io/jq/manual/ 見つつ https://jqplay.org で試した
jq初めての俺でもすぐできたじゃねーか
まじめにやれ

808 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/27(水) 07:24:03.91 .net]
>>777
どうもありがとうございます!
カッコを使うといいんですね

809 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 16:24:57.87 .net]
dashで動くシェルスクリプトってPOSIX準拠のシェルスクリプトだと思って問題ない?



810 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/28(木) 17:11:46.11 .net]
そいつから呼ぶコマンドもPOSIXじゃないとな。

811 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 00:29:23.70 .net]
dashはPOSIX準拠である
だからPOSIX準拠のコードはdashで期待どおり動く
だけどdash専用のコードはPOSIX準拠ではない

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/29(金) 01:00:02.18 .net]
kshのposixモードがかな。POSIX仕様の元となった自負があるだろうからposixモードもちゃんとしてそう

813 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:10:41.02 .net]
あの,すごく初歩的なことだと思うのですが,
Excelなどのように隣のセルの値を参照して現在のセルの値を計算するという手法を
シェルスクリプトで行うにはどうすればいいでしょうか。
具体的には,参照した値をaとして,(1-sin^2(a))/2^aを計算したいです。
Excelだと,A列に値を入力していき,B1セルに「(1-(SIN(A1))^2)/2^A1」と入力した後ドラッグすればいいのですが……。

814 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/30(土) 22:52:18.06 .net]
a=値
echo "(1-s($a)^2)/2^$a" | bc -l
とか?

815 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/01(日) 20:12:26.02 .net]
cat <<. | xargs -I @ echo (1-s(@)^2)/2^@ | bc -l
3
44
-6
.
こんなのでどう?

816 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:06.28 .net]
cat と echo と print の違いが分からない
あと、print と printfの違いも
教えて

817 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:00:38.56 .net]
less と moreも

818 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:07:32.55 .net]
manすりゃいいんじゃないの

819 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:15:59.23 .net]
cat と echo,printf は全然違う。主に出力するソースが(ゆえにパイプで入力受ける受けないとなり?)
echo と printf は、書式が指定できるかというか、コマンド由来とC由来かな
printって?awk内のならprintはechoのようなもんかな(Ubuntuには print がコマンドであるけど Mailcap とかナニそれな普通じゃないのだな)



820 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:19:26.23 .net]
ググったらechoは改行されてしまうけどprintfは自分で\nしないと改行されないってあった

821 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:23:46.00 .net]
それらの違いが分からないのは使ってないからだろ
使ってないなら知る必要もないし知ろうとも思わない
自作自演かな?

822 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:26:27.85 .net]
>>791
宿題

823 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:23.78 .net]
コマンド由来とC由来ゆうてるやんw
printf(1) は printf(3) と同じと思えば不思議ではないだろう。echo も -n で改行しないようにもできるけどイレギュラー、コマンド由来だからな

>>791
まあ、なんの目的で聞いてるのかさっぱりわからんくはあるな。なんの自作自演なのかさっぱりだけど

824 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:27:58.46 .net]
>>792
宿題かああ。程度が低いな。高校でとかか?

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:28:13.36 .net]
>>792
あぁ…

826 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:39:06.49 .net]
>コマンド由来
コマンドはつねに改行されるの?

827 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:40:31.96 .net]
あと、printfのfって何?
f付けたのはcが最初?
fって?

828 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:44:50.94 .net]
少しは自分で調べろよ

829 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:47:13.07 .net]
調べたから改行の事分かったんだけど?



830 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:47:50.56 .net]
もっと自分で調べろよ

831 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:49:35.35 .net]
じゃぁfだけヒント教えて

832 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:50:22.47 .net]
それな

833 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:50:43.52 .net]
>>796,797
コマンドで何か出力するのに「改行しない」方が少ないだろうという。echo "Hello"が改行しなかったら

834 名前:プロンプトが続いてとか。改行した方がその機会が多いので省けるだろう
f = フォーマット。printfはCが起源じゃないのかなあ。の前の何かの言語ではprintがあっただろうな(どういうのか知らんけど)

聞く姿勢が小学生低学年並みだな。そろそろ>>798の言うとおり
[]
[ここ壊れてます]

835 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 14:55:17.35 .net]
>>803
どうもありがとうございました

836 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:22:33.69 .net]
礼儀正しいな
少し見直したw

837 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:24:56.72 .net]
manとinfoどっち使ってる?
infoは文中から別のページに飛べるから便利そうだけどウェブブラウザのように戻る進むボタンがあるわけでも無いし全部文字だけだから現在位置が分からなくなるからmanがいいと思うんだけどどう?

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:25:43.12 .net]
なんか最近ほんとこういうアンケートみたいなの増えたな
どっかから流れてきたか?

839 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:27:19.76 .net]
この質問は乾燥機かせてほしいだけだから



840 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:29:11.19 .net]
UNIX板だからmanだな

841 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 15:31:13.31 .net]
何を乾燥させたいのかしばらく悩んだ

842 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 18:41:01.45 .net]
「乾燥機貸して」ってアンジャッシュのネタにあったなそういや

843 名前:名無しさん@お腹いっぱい。 [2018/07/02(月) 19:09:02.32 .net]
man manて口で言うと恥ずかしいからinfo

844 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 19:35:17.38 .net]
rcsのco(1)を

845 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 21:56:08.50 .net]
tinfo

846 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/02(月) 22:32:14.11 .net]
そのあたりのネタはもう聞き飽きた

847 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 00:21:24.80 .net]
ディレクトリの中の拡張子がm2tsのファイル全てをtsselectというコマンドに投げてその標準出力をひとつのファイルに追記で書き込みたいんですが、その際、ファイル名も一緒に書き込みたいです。
どうやってファイル名を取得するんでしょうか?

$ tsselect *.m2ts > ana.log

848 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 00:43:49.80 .net]
1行で書けなかったので、複数行に分けてfor分を使いました。

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/03(火) 01:01:05.23 .net]
こんなん?
for i in *.m2ts; do echo $i >>ana.log; tsselect $i >>ana.log; done



850 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 07:39:11.34 .net]
近頃のどこか(このスレかも)で,
「fgrepはgrepより遅い」というような話を耳にしたんですが,ほんとうですか?
手元のgrepで試したところ,ほとんど有意な差はありませんでしたが……。

851 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 08:10:45.64 .net]
それぞれ独自バイナリだった昔の話な。
あとgrepよりegrepの方が速かったんで、
今でも手はegrepを優先して打っちゃうけどな。

852 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 08:43:22.98 .net]
いや独自バイナリだった頃もfgrepの方が速かったような。
grepだけ非決定性オートマトンで遅い的な。

853 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 15:23:44.48 .net]
ファイルの一括リネームで
$ find . -name "*X*" | while read F; do mv $F ${F/X/Y}; done
だとXXXがYXXになるんですけどYYYにするには繰り返さなきゃいけないんですかね?

854 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:18:50.48 .net]
If pattern begins with /, all matches of pattern are replaced with string.

855 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:22:26.78 .net]
日本語で書いてくれないとわかりません
できれば修正したコマンドを書いてください

856 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:25:40.84 .net]
お断りします

857 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:27:15.37 .net]
断る理由とは?

858 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:29:57.71 .net]
ひな鳥に餌を上げるのはひな鳥がかわいいからだ
なんかこのひな鳥うざいって思ったら餌は与えない

859 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:31:49.67 .net]
可愛く思われる質問の仕方でもあったんですかね



860 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:34:15.63 .net]
とりあえず「sh 変数展開」あたりでggってからここに来

861 名前:
それで分からなきゃどこかの暇人が餌与えてくれるまでずっと待ってな
[]
[ここ壊れてます]

862 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:35:48.08 .net]
ありがとうございました

863 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 16:54:10.40 .net]
もう来んなよ

864 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:24:31.29 .net]
すみません
ワードとかに出来る~$で始まるファイルを一括で消したいのですがどうすればいいですか。
find ./ -name "~$*" -exec rm -rf {} \;
これだと上手くいかないです。
find ./ -name "~\$*" -exec rm -rf {} \;
エスケープしてもダメです。
find ./ -name "~*" -exec rm -rf {} \;
これだと上手くいきますが$も指定するためにはどうすればいいですか。

865 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:27:42.16 .net]
シングルクォート使っとけばぁ

866 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:30:53.83 .net]
>>833
上手くいかないです
$ find . -name ~'$'*
Unknown user: $*.

$ find . -name "~'$'*"
Illegal variable name.

$ find . -name ~"$"*
Illegal variable name.

$ find . -name '~"$"*'
何も出力されない

867 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:41:11.43 .net]
自己解決
bashにしたら\で普通にエスケープできました
find . -name "~\$*"
なんでcsh使ってたんだろ

868 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:44:18.71 .net]
csh使ってたならプロンプト$にすんなよ紛らわしい

869 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 18:46:56.81 .net]
cshだと%でしたねすみません
% find . -name "~\$*"



870 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 20:48:13.14 .net]
なんで-rつけてんねん

871 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 20:56:00.21 .net]
ファイルフォルダ関係なく消したいからフォルダがないとわかっていても付けてる

872 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:12:02.88 .net]
\; より + かな。forkの遅いCygwinでは特に。

873 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:21:14.22 .net]
最後以外の改行を削除する単純で可搬な方法を探しています。
私が現在使っている方法は
cat <<. | tr -d '\n' | printf '%s\n' "$(cat)"
a
bbb
cc
.
です。これは可搬性は抜群ですが、冗長すぎると感じています。
できれば一つのコマンド(sedとか?)で済ませたいです。よろしくお願いします。

874 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:32:09.95 .net]
awkで

875 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:34:23.01 .net]
フォルダっつーかディレクトリ

876 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:37:25.99 .net]
同じだろ

877 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:40:52.56 .net]
>>841

sed ':l;N;s/\n//;bl'

とかかな。// を /,/ にすると、1行CSVに出来る。

878 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 22:22:07.40 .net]
>>845
ありがとうございます!
すごいですね……。:lってラベル付けでしたっけ。

879 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 23:00:04.93 .net]
>>841
cat <<. | { tr -d '\n'; echo; }
a
bbb
cc
.



880 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 09:36:25.04 .net]
Mac付属のsedじゃうまく行かなかった、ってお呼びじゃないか
最近のBSD sedはどうかわからないけど

881 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 10:23:41.12 .net]
>>848
え? そうなの?
OS Xを持ってないので知らんが Busyboxでも行けるくらいの可搬性はあるぜ?
全部POSIXで規定されてる命令だし。

882 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 12:53:17.75 .net]
macOSだけでなくBSDでだめっぽい。BSDでだめというか、GNU sedでなら動くか

883 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:18:26.92 .net]
主にパターンスペースに対して処理した直後にどうするってとこの違いかな。他ではBSDでもmacOSとOpenBSDでは行を処理しなかった場合どうするがちょっと動作が違ったり、いろいろ鬼門だなsedは

sed '$!{H;d;};${H;g;s/\n//g;}'
で、いちおう、sedもGNU sedものようだけど、ゴテっとはしてんな

884 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:50:09.34 .net]
>>845も結局改行を削除しているだけ&最後の改行はsedの勝手に付けるだけなので、>>847の方がシンプルでこっちの方がって感じだな

885 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:36:04.46 .net]
>>845のMacやBSD向け変種でけた
sed -e :l -e 'N;s/\n//;$p;bl'

886 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:51:48.45 .net]
おおっ
ラベルを別にすれば/しなきゃなのか
$はそこに入れるのか、なるほど
GNU sedではそれだと.

887 名前:..オプションで変えられるかな
くせが強いw
[]
[ここ壊れてます]

888 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 17:34:11.18 .net]
教訓。移植性を重視するならsedで変なことするな。普通の正規表現だけ使え

889 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:25:50.29 .net]
昔はもっと酷かったんだろうな #移植性
sedだけじゃなくてgrepとかも。



890 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:33:28.39 .net]
>>856
昔は一つしかなかったから移植性よかったよ。
GNUが台無しにした。

891 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:41:45.18 .net]
ぐぬぅ

892 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 22:10:39.00 .net]
sed で可搬性を考えると、セミコロンで分ける方法はちょっとあやしいから、
愚直に -e で分けるしか無いのかも知れない、短く書けないけどw

それはさておき、sed の「無限ループに N を入れる」って、趣があると思うんだよね。
C で「ファイルを while の条件文で fgets() が EOF になるまで読み込む処理」に近いというか。

893 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 22:32:39.96 .net]
>>855
>普通の正規表現だけ使え
というより、一行単位サイクルで処理しろかな

894 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 23:00:24.55 .net]
>>859
溜めに溜めて溜め込んでってイメージしかないなw
そのwhile〜fgets〜で言うなら、中にreallocでどんどこ的な

実際どうなんだろと65Mのファイルで「ちょっと」試したら、使用メモリは増えない(??)けど終わらんぞw

895 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/06(金) 00:57:10.67 .net]
bashのプロセス置換なんですけど、最初のプロセス置換が/dev/fd/63に固定(?)されているのはなにか理由があるんですかね。
bash-4.4$ eval echo $(yes '<(echo) ' | head -n 63)
とやったら/dev/fd/63からデクリメントされていって/dev/fd/5→/dev/fd/3→/dev/fd/64
という謎の変化を経てインクリメントされていくという……。
これ仕様ですかね。

896 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 16:45:13.41 .net]
仕様です
63は昔は大きい数字だったのですが
最近は小さくなってしまった

897 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 19:05:22.41 .net]
数千行のCSVの値を一個一個指定の条件に沿っているかチェックするにはシェルスクリプトでも出来ますかね?
参考書教えて頂けたら嬉しいです。
それともこういうのは他のスクリプトの方が適してたりしますか?
perlも使える環境ではあります。

898 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 19:24:54.18 .net]
>>864
そのチェックが他の行の参照を含まなくて、shellでできるかという質問にawkやsedも含まれているのなら、できる
というか、excelでやったりしないし、最近はpythonでやることが多い

899 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 20:21:55.89 .net]
指定の条件によるな。CSVの項目も数値や文字列だけだったらシェルスクリプトだけでもできるだろう



900 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 20:52:55.66 .net]
ああ、文字列の中のフィールドセパレータ(,)をフィールドセパレータとして除外というのはしないか。awkも同じかな。やってできないこともないだろうけどめんどくさいな
perlはcsv処理するモジュールを入れてだっけ、pythonは最初から入っているよな

901 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 21:04:50.61 .net]
それ以前にCSVのフォーマットによると思う
改行とかカンマとかダブルクォーテーションを含むとかをきちんとやりだすとシェルだけでもできるだろうけどやりたくない

902 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:07:51.61 .net]
またCSV嵐が来てんのか

903 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:12:15.86 .net]
カンマ入っている場合には "" もしくは '' で囲わなければならないから、それはシェルスクリプトにとっても都合がいい、
IFS=',' fields=($raw)
で簡単にと思ったがそう甘くはなかった。最近流行りのevalでなんとかだとしても、$とかまた別の問題があるしなあ

904 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:14:30.65 .net]
>>869
別にあれとは違うだろうにw 単にCSVだからって拒

905 名前:否反応示しすぎ []
[ここ壊れてます]

906 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:47:30.31 .net]
皆さんお答えありがとうございます。
出来るけど面倒だという感じですね。
PHP使いたいけど仕様上ダメみたいなんですよね。。。
後にメンテナンスが面倒くさそう

907 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:50:19.59 .net]
>>867
残念ながらpythonは入ってなかったです。DBサーバーなんで

908 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/08(日) 00:37:11.05 .net]
>>873
perlで高機能な(?)Text::CSVを入れればだけど、それすらなら、
t2aki.doncha.net/?id=1403586022
なんぞの数行のをコピペってでもかな。後はperlスレだな

909 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 08:36:49.76 .net]
>>869
いいえ、また "お前" が来てるんですよ



910 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 09:05:14.05 .net]
>>872
上とかけあってperl/python/rubyのどれかを入れさせれもらった方がいいと思う。
あるいはjava VMがインストールされてるなら、そっち使ってもシェルよりは楽。

911 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 13:02:45.84 .net]
素直にCで書けばw

912 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 15:13:46.00 .net]
1990年代には確かにこういうプログラムもCで書いてたが、今では はやらんよ。
スクリプト言語とかJava VM系言語とかでCSVライブラリ呼ぶように書くのが普通。
もっと低レイヤの処理ならCも使うけど、業務システムにCを使うってのは、
開発効率が悪いせいで、ほぼ亡びた。

913 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 19:00:09.14 .net]
compgenによる補完候補の絞り込みですが
bashでは正常に動作するもののzshでは絞り込まれません。
なぜでしょう?

# bash 4.4.19 on Ubuntu 18.04
$ compgen -W "aaa bbb ccc" a
aaa

# zsh 5.5.1 on Ubuntu 18.04
% compgen -W "aaa bbb ccc" a
aaa
bbb
ccc

.zshrcでは
autoload -U +X compinit && compinit
autoload -U +X bashcompinit && bashcompinit
してます

914 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 22:19:36.10 .net]
>>878
すでに入ってるLL使うならわかるが、JavaVM入れるくらいならCでいだろ。

915 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/10(火) 08:36:39.48 .net]
>>880
>>876は「java VMがインストールされてるなら」って書いてあるじゃろ。
つまりCSV処理のためにjava VM入れるんじゃなくて既に入ってるならって話。
入ってないなら交渉してスクリプト言語入れる方を推奨だな。

エンタープライズ系は静的型検査が欲しいので相変わらずjava VMな言語が強いのよ。

916 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/15(日) 05:45:07.54 .net]
シェルスクリプトでwebpackみたいに結合して1ファイルにしてくれるものとか
babelみたいにトランスパイルすることで言語を拡張するものって無いかな

917 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/15(日) 13:28:22.06 .net]
>>882
シェルアーカイブ形式とか?
file.sharという形で,ファイル後半に(圧縮した)バイナリーファイル,前半(というかヘッダ)に展開用シェルスクリプトとインストールスクリプトを書いておく)
最近のソフトウェアだとVMWare Horizon ClientsのLinux向けインストーラーがその形式だった。

918 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/16(月) 09:08:44.64 .net]
>>883
別にバイナリファイルを動かそうって話じゃないよ
単にくっつけてくれればいいだけ

919 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/16(月) 11:20:08.69 .net]
>>884
それがshar



920 名前:名無しさん@お腹いっぱい。 [2018/07/17(火) 14:15:20.69 .net]
>>885
だからぜんぜん違う
webpackみたいに1ファイルに結合するって話をしてる
結合しても結合する前と同じように動く
すこしはsharについて調べてきたら?

921 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:17:28.78 .net]
shar知らない人のために説明しておくと、
これは単なる自己解凍形式の圧縮ファイル形式に過

922 名前:ャない []
[ここ壊れてます]

923 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:31:39.62 .net]
それよりwebpackとやらについて説明しておくべきだったろ
聞き方が悪い

924 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:59:08.62 .net]
名前出てるんだから調べればいいだけだろ

925 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 15:01:52.39 .net]
なんで聞く側が偉そうなんだよって話だろ

926 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 16:41:05.27 .net]
どう使いたいかとかわからんのにな
>>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし

927 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 18:43:00.23 .net]
webpackはCのプリプロセッサのincludeみたいなやつだよ

928 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 19:48:43.74 .net]
バンドルじゃないの。macOSのバンドルのようなのを単一ファイルでの
単にincludeだったらシェルスクリプトにcatでくっつければええやん。目的は単一のファイルにしたいだけなんだから
バンドルなんだからバンドルをハンドルするヤツが必要じゃないの。んなのはshar使って自分で作ればってとこじゃね

929 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 07:15:49.95 .net]
webpackとかbabelとか覚えたてのキーワード並べてみたかったんでしょ
そんなのが必要になる状況がクソなんだがなw



930 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:45:31.69 .net]
>>891
> >>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
自分で頑張ればできるって話なら、ファイル結合なんだからcatでもできるよ?
自分で頑張ればいいだけ。結合されても大丈夫なようにコードを書く必要があるけどな

その頑張るのが面倒だからツール使うんだろう?

ちなみにsharなんていらない。だってこれ目的を満たすためのツールじゃないから
自分でcatで頑張る+圧縮もしたいなーって思った時にオプションで使えるかもしれないツール

931 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:47:00.38 .net]
>>894
単一のファイルで何千行も書きたいの?

932 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:48:08.70 .net]
ちなみにsharの問題は展開しないと使えないって所
ルータのような書き込み回数に制限があるシステムでは致命的

933 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:48:51.53 .net]
あと展開のためのコマンドが入ってない可能性もあるしな
ファイル結合するだけなら、外部のコマンドにも依存しない

934 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 12:29:11.73 .net]
シェルスクリプトは実行可能なままファイル結合する必要性があんまりないってこと
そんなのとかトランスパイルとかが必要になるJavaScriptを指して、クソだなって言われてるんじゃない?

935 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 14:24:18.43 .net]
てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
他の言語を使うべき。

JavaScriptくらい高級な言語ならアリだけど。

936 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 19:30:47.19 .net]
ディレクトリ A の中のファイルを全部
ディレクトリ B の中の同名のファイルと diff を撮りたいんですけどどうすればいいですか
xarg で1つの引き数を渡す方法しかわからないのでおねがいします

937 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 19:32:58.08 .net]
diff -r A B
でいいのでは?

938 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 20:29:52.99 .net]
少しはggるとかしてからここに恋や

939 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:00:07.83 .net]
その前にmanすれ



940 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:33:29.76 .net]
システムのスクリプトにも参考になるものがたくさんあるよね。zgrepとかzdiffとか
linuxだけどlddがシェルスクリプトだったのには驚いた

941 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:51:54.45 .net]
bashのHISTTIMEFORMATを設定した環境だと
sshログアウトしてもbgプロセス消えないみたいなんだが
なんでなん?

942 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 22:33:43.46 .net]
設定してなくてもsshログアウトしてもbgプロセス消えないけど、うちでは
他の設定じゃね

943 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 23:31:51.58 .net]
うーむ
会社の環境だとその設定の有無で変わったんだけど
今vmでcentのminimal立てたら設定なしにbgプロセス生きてた

何か勘違いしてるのか

944 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 00:16:48.11 .net]
https://serverfault.com/questions/117152/do-background-processes-get-a-sighup-when-logging-off
だって。ちょい昔からデフォで子プロセスに

945 名前:HUP送らなくなってるんだなあ。OSやディストリによってデフォが違うだろうけど

huponexitオンにして、HISTTIMEFORMATを設定してもbgプロセスは消えるねえ
[]
[ここ壊れてます]

946 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 09:21:29.33 .net]
case文で,Bash特有の高速化オプションとかありませんかね。

947 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 10:02:38.02 .net]
>>910
高速化できるんならオプションじゃなく最初からそうしてると思うが、
さらに、高速化が必要なほど遅いcaee文とは?

948 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 10:34:16.62 .net]
>>902
Aにあるファイル名だけ比較したいんです
Bのなかにはほかにもファイルがあったりするので
diff A/$f B/$f
とか場合によっては
diff A/$f B/*/$f みたいなことがしたかったのです…

ls なり find なりの出力ファイル名を変数に取り出すのってやっぱり難しいんですね
諦めます
レスありがとうございました

949 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 11:14:05.74 .net]
お題としてはちょっと楽しめると思うけど、諦めちゃうのか



950 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 11:19:41.98 .net]
find A -type fして、それぞれbasenameとって、find B -name filename -exec hogeってかんじかな。
B側で何度もfindするのを減らしたいけど、キャッシュされればそれほど負荷じゃないか。

951 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:11:39.09 .net]
diffの話ついでに
(GNU) diffでディレクトリごと比較したときに、一方のディレクトリにのみあるファイルを無視するオプションってある?
diff -r /dirA /dirB | grep -v 'にのみ存在'
とやればまあ大抵の場合解決するんだけども、たまたまあるファイルの変更箇所に「にのみ存在」っていう文があった時に
困るので、できればオプションで解決したい。

952 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:28:48.82 .net]
LANG=Cで^Onlyにマッチさせてはじく

953 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:35:37.30 .net]
diffの出力って行頭の文字が重要なのに、
これを無視した日本語ロケール作者は反省するべき。

954 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:53:00.49 .net]
結果に対してsedで…ってのはさすがに無駄だな

955 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:57:00.83 .net]
>>916
ああなるほど。
diffの出力結果では行頭は変化を表わすところだから
その行頭を除けばいいね。

956 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 15:19:36.24 .net]
詳しい解説サンクス

957 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 20:13:49.97 .net]
>>909
サンクス
俺の勘違いだったっぽい

958 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 01:50:52.37 .net]
>>900
> てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。

行数で使う言語を決めるなや

シェルスクリプトは、コマンドの連携処理を一番シンプルに書くことができる言語
シェルスクリプトが適している問題を、長いからという理由で他の言語を使うともっと長くなる

なぜ非効率な言語を使うのか?

959 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 02:03:28.48 .net]
はいはい



960 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 06:54:58.07 .net]
この引用符…あっ(察し

961 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 07:21:43.92 .net]
引用符?

962 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 12:12:45.33 .net]
>>922
まさにシェルスクリプトがプログラム間連携のための言語だからだよ。
1000行以上にも及ぶ複雑なプログラム間連携処理を
シェルスクリプトで書く状況ってのは
モジュール分割に失敗してる可能性がきわめて高い。
100行くらいの単体でも十分に使えるシェルスクリプトが10個ならば問題ないが。

シェルスクリプトは現代的プログラミング言語の持つ数々の抽象化機能を
欠いていて大規模プログラミングに向かないことは常に意識するべき。

963 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 16:50:00.03 .net]
仕事でならな。個人的なのでもそういう学習習得意欲がないんだったら馬の耳に念仏かと

964 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 20:11:37.10 .net]
ケンカはやめて(><)

965 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 02:15:31.20 .net]
二人をとめて \(^o^)/

966 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 02:44:08.71 .net]
私だ

967 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 09:20:03.54 .net]
あえて不向き

968 名前:なことをやるのは好きだよ []
[ここ壊れてます]

969 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 13:29:23.62 .net]
>>926
> 1000行以上にも及ぶ複雑なプログラム間連携処理を
> シェルスクリプトで書く状況ってのは
> モジュール分割に失敗してる可能性がきわめて高い。

だからシェルスクリプトでモジュール分割するんでしょ?



970 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 13:30:12.48 .net]
>>931
外部コマンドの呼び出しが多数存在する場合、
シェルスクリプトを使うのが向いてる

971 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 15:15:10.19 .net]
>>933
外部コマンド呼び出しは敗北と同義よ!
漢なら全て内蔵コマンドで処理をせい!

972 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 15:36:08.22 .net]
>>932
できてるならそんな話題になってないな

973 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:05:41.70 .net]
>>935
普通に . (source)を使用するだけだけど?

974 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:08:19.12 .net]
>>934
内部コマンドだけで処理できるなら
普通の言語のほうが良いよ

外部コマンドの連携に強いシェルスクリプトは
外部コマンドを呼び出すために使うもの

逆に普通の言語だと外部コマンドの呼び出しは面倒なんだ。

975 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:16:33.64 .net]
そろそろ板違い

976 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:30:52.91 .net]
>>936
そういうのもできてるなら話題になってないって言ってるんだけど
できてるって、言語的にできるできないじゃないよ

>>938
板違いってか本題から外れすぎだな

977 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/22(日) 19:37:39.33 .net]
>>934
includeやimportも禁止な

978 名前:名無しさん@お腹いっぱい。 [2018/07/22(日) 22:44:37.34 .net]
やっぱ次のスレからワッチョイ付きにしようね

979 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/22(日) 23:49:40.49 .net]
>>939
だからモジュール分割は . で出来てるから話題になってないってことでしょ?



980 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 01:44:04.51 .net]
この掲示板ってワッチョイないのでは…
というかidもなかった

981 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 01:57:54.18 .net]
使えないのかもしかして

982 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 02:50:48.89 .net]
掲示板ごとの設定だからね

983 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 03:47:58.52 .net]
じゃあもうこの板捨てるか?
Linux板にでも移動すりゃいいでしょ

984 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 04:20:40.19 .net]
ワンチャンある
最近精神年齢キッズが多すぎるしな

985 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 11:29:23.13 .net]
test

986 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 11:56:50.52 .net]
false

987 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 20:31:02.18 .net]
>>946
OSの話じゃないから向こうでやってもいいかもね

988 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 20:36:06.85 .net]
あっ、でも向こうだと動かすOSがLInux前提になってしまうのか

989 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 21:56:56.76 .net]
プログラム板にすれば?



990 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:23:40.05 .net]
するならそっちだな

991 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:28:36.47 .net]
ム板に賛成する

992 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:46:21.28 .net]
ム板にしましょう

993 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:48:33.03 .net]
バッチ、パワシェのスレがム板にあるから不自然じゃないよね

994 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:25:43.39 .net]
賛成だ
しかしシェルスクリプトがunixにいられなくなるってのもなんかすごいな

995 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:37:47.14 .net]
俺も賛成だわ

996 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:43:21.92 .net]
まあUnixもそれだけ多くの人に知られてきたってことじゃない?
もちろんキチガイは不要だけども。

997 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 06:02:37.30 .net]
テンプレは同じでいいな
もし嫌ならそいつが新しいの考えろ

998 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:06:17.93 .net]
とりあえず立てました。
テンプレを書き込もうとしたら長すぎと怒られたので、分割するついでにちょっと改変しました。
https://mevius.5ch.net/test/read.cgi/tech/1532397676/l50

999 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:25:29.69 .net]
IDだけか?
ワッチョイいれるんじゃないのか



1000 名前:961 mailto:sage [2018/07/24(火) 11:43:21.78 .net]
>>962
実はワッチョイを提案したのは俺なんだけど
あんまり賛同者がいないようだし
勝手にやるのもどうかなと思ったんだわ。
今はID板でやって
それでも荒れるようであればワッチョイ付けるっていう方針でいいかなと思ってる

1001 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:51:50.17 .net]
>>963
俺はワッチョイも含めて賛成してたけど、まぁそれでいいか
ざっと厶板の他のスレみた感じワッチョイまで採用してるスレほとんどないみたいだし、あっちでもあまり使わない文化なのかもしれん

1002 名前:、どうなんだろ []
[ここ壊れてます]

1003 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:53:47.82 .net]
ヘタレすぐる

1004 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:31:44.59 .net]
プログラム板移動とか計画通りすぎるwww

1005 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:32:21.76 .net]
どうせならIPアドレス表示まですればいいのに
攻撃してやんよ

1006 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:41:26.67 .net]
プログラム板という修羅の国に移動か

1007 名前:961 mailto:sage [2018/07/24(火) 12:54:08.96 .net]
プログラム板ってここと違って保守しなきゃいけないよね
誰かどのくらいで落ちるか分かる人います?

1008 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:54:54.13 .net]
20

1009 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:55:43.39 .net]
あぁ時間か
どうだったっけな、さすがに覚えてない
20レスすれば当面落ちないとだけしか



1010 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 13:29:33.13 .net]
先日lispスレ立てたけど、4レスのまま全然落ちる気配ないよ。

1011 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 20:36:12.16 .net]
>>963
その段階的なやり方で良いと思う
スレ立て乙!!

1012 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 04:22:56.20 .net]
UNIX板伝統のシェルスクスレもム板行きかあ
UNIX板に限らず、専門板って過疎ってるところ多いから、統廃合してほしいな

1013 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 15:06:43.63 .net]
シェルスクリプトはもはやUNIXだけのものじゃなくなったからなぁ。
クロスプラットフォームが当たり前になって、
OS別のマターというのもだいぶ限られてきたね。

1014 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 16:55:26.81 .net]
UNIX板の中でシェルスクリプト総合スレが一番、というか唯一勢いがあるんだが、
これなくなると凄まじい限界集落になるな…

Vim/Emacs/TeXあたりもソフトウエア板あたりなんか行ったら、もう…(´;ω;`)

1015 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 18:05:53.09 .net]
せめてIDが出る板だったらよかったのにね…

1016 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 18:31:00.38 .net]
まぁ言っても仕方ない
変わらない環境なんざないさ

1017 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 20:33:48.37 .net]
WindowsではWSLでシェルスクリプトが動く
だけどWSL環境なんだよなぁ

Windows標準でbusyboxとか採用してくれればいいのに
バッチファイルの代わりとして使えるんだが

1018 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 21:09:31.29 .net]
>>979
どんなことにつかいたいの?

1019 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 21:12:51.81 .net]
バッチの意味不明なsyntaxと貧相なコマンド類は発狂しそうになるけど、パワシェではいかんの?
パワシェ使ったことないけど、さすがにまともに設計されてるんだろ



1020 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 22:21:31.92 .net]
PowerShellは、普段使いのシェルとしては使えない

1021 名前:名無しさん@お腹いっぱい。 [2018/07/25(水) 23:38:49.24 .net]
Powershellは高機能なんだろうけど、高機能すぎて、あれこれ調べているうちに疲れた

結果として、Powershellの機能を呼び出すバッチファイルが出来上がってしまった

1022 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/26(木) 05:51:18.22 .net]
>>980
WindowsでもLinuxでも動くスクリプトの作成

busyboxがあればシェルと基本的なコマンドは手に入るから
あとは特定のアプリのWindowsバイナリ版を入れるだけで
WindowsでもLinuxでもMacでも使えるスクリプトが作れる

cygwinやmsysもあるけど、Windowsに標準搭載してほしい
最低限のことはできるようになる。

>>981
PowerShellはコマンド体型違うから

1023 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 11:09:39.45 .net]
>>984
太ってるの?

1024 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 11:11:30.73 .net]
>>984
cygwinのdllと起動batを持ち歩くといいよ
どこでもsh動く

1025 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 21:15:51.75 .net]
>>986
いつのまにか感染してました、で会社をクビになるんですね。

1026 名前:名無しさん@お腹いっぱい。 [2018/08/01(水) 17:27:03.04 .net]
>>986
Windows標準でbusyboxとか採用してって話なのに
cygwinを持ち出されても、
 そんなのが必要になるから、Windows標準で採用してって言ってるんだよ
で終わる

1027 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 01:46:48.23 .net]
>>988
SFU や WSL の流れからして、Busybox 相当の標準搭載も需要も無いと思いますよ。
必要ならば S

1028 名前:ysinternals 等の TechNet フォーラムに参加して要望を出してみては。 []
[ここ壊れてます]

1029 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 04:05:27.78 .net]
>>989
需要がないのになんで次から次へと出てくるの?



1030 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 04:15:34.43 .net]
もうすぐみんなとお別れなの(´;ω;`)

1031 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 05:22:46.59 .net]
次スレ

シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/

1032 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 06:31:33.06 .net]
>>992
たぶん善意からだと思うが、すでに>>961
この板とはお別れ

1033 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 08:08:24.46 .net]
悪意だろ

1034 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 08:24:36.20 .net]
そう先に思うのはお前自身が腐ってるからだろう

1035 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:08:24.13 .net]
埋め

1036 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:08:47.19 .net]
埋め

1037 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:28.02 .net]
次スレこちら
https://mevius.5ch.net/test/read.cgi/tech/1532397676/

1038 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:44.23 .net]
埋め

1039 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:52.51 .net]
お前らあばよ



1040 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 90日 15時間 15分 29秒

1041 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef