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


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

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



1 名前:名無しさん@お腹いっぱい。 mailto:sageteoff [2015/08/14(金) 23:42:01.51 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その24
peace.2ch.net/test/read.cgi/unix/1415634843/

552 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/13(水) 01:49:11.16 .net]
>>539
正社員なら800でもマシな方
なんせ上が詰まっててなかなか上がらないし

でもフリーや少数精鋭のとこなら1000は余裕で行く

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/14(木) 09:18:08.49 .net]
うちはもう1000万じゃなくなったよ

554 名前:名無しさん@お腹いっぱい。 [2016/04/14(木) 22:19:32.09 .net]
>>534
サンプルコードがあるような本でも分からないなら、シェルスクリプトはやめた方がいい。

555 名前:名無しさん@お腹いっぱい。 [2016/04/14(木) 22:21:13.69 .net]
>>534
「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」を読みなさい。

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/15(金) 08:51:58.72 .net]
ネタだろうけど、あんまり古過ぎる本勧めてやるな。

557 名前:名無しさん@お腹いっぱい。 [2016/04/15(金) 11:45:17.59 .net]
>>545
そもそもシェルスクリプト自体が変わっていないが?

558 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/15(金) 21:13:21.13 .net]
だよね。
さすがに絶版だったらおいおいと思うが。

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 00:27:13.14 .net]
>>532
と言ってたら、bashの脆弱性が見つかったのは数年前だね

560 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 05:01:00.01 .net]
明日は我が身だが、2つの変数が両方とも空だった確率が0%じゃなければ、事故が起きてしまうな。
この場合は、どう書けばよかったの?

business.newsln.jp/news/201604151116100000.html

レンタルサーバー業者で、従業員のミスによりサーバー上の全データが削除されるという
あり得ない事態が生じたことが14日、英大手紙「Independent」の報道で明らかとなった。

このレンタルサーバー業者では、削除してしまったデータを復元するために、大手QAサイトのserverfaultに
「Recovering from a rm -rf /(rm -rf /から復元する方法を教えてください)」とする書き込みをすることで、
問題の解決方法を模索しているが「バックアップがない限り、復元は難しい」といった回答も寄せられている。

QAサイトのserverfaultでは、日ごろ、初心者からの質問から、かなりの高度な質問まで、様々な質問が寄せられるとただちに、
最適な回答が付く状態が続いているが、さすがのserverfaultの熟練回答者であっても
会社の全データを「rm -rf /」で削除した後にどのような有効な復元策を講じることができるのかは、回答に詰まる状況となっている。

このミスをしてしまったレンタルサーバー業者の管理人となるMarco Marsalaによると、
プログラム中で、「rm -rf {foo}/{bar} 」と指定することで全サーバーを対象に、特定のディレクトリーのファイルだけを削除するスクリプトを動かしたところ、
このプログラムのバグにより、特定のディレクトリーだけでなく、全てのディレクトリーが強制削除の対象になってしまったと説明している。

また、バックアップを事前に取っていなかったのかという質問については、
もちろんバックアップは取得していたが、この全削除のプログラムによりバックアップファイルも削除の対象となってしまったと述べている。
このレンタルサーバー業者は、1535のカスタマーを抱えているが、この事故の発生により、これら全てのカスタマーのファイルが無くなってしまった。



561 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 09:24:48.15 .net]
だから/は変数の中に入れておけとあれだけ

562 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 10:06:55.21 .net]
>>550
そういう問題ではない。

563 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 10:35:23.38 .net]
>>551
だったらどういう問題?

564 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 10:51:02.13 .net]
>>552
なんでテストしてないの?

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 11:15:01.02 .net]
バグがあっても大丈夫な設計を心がけろという話なのに
なんでテストしていないという話になる?頭大丈夫か?

566 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 11:25:08.28 .net]
あまりにアレで何か別のことを隠すためのうんたらかんたらを妄想してしまう記事だな

567 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 13:52:26.18 .net]
>>554
設計があって、テストをしないのはありえません。

568 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 13:56:59.02 .net]
>>554
だいたいそれは設計じゃないだろ。

ただのコーディングミスを防げために、コーディングミス用のロジックを書くのは阿呆すぎる。

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 14:43:59.32 .net]
>>557
フェイルセーフとフールプルーフの違いを学べよ

570 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 15:25:19.31 .net]
>>558
いかにもインフラの人間がいいそうなことだが、キミは開発側ではありえない助言をしている。



571 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 15:27:25.43 .net]
検証もしないで、ぶっつけ本番でそういう構成になっているから大丈夫という考え方はインフラでもありえない。

572 名前:名無しさん@お腹いっぱい。 [2016/04/16(土) 15:28:05.09 .net]
そもそも操作ミスではないじゃん。

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 16:30:24.50 .net]
バックアップは特定の権限でしか消せないとか、削除可能な範囲を絞るとか
万が一のためインフラ側で制限しないとダメなんだよ
それでもダメなときはダメだし

設計・テストとかプログラムのみでの対応はコストだけが跳ね上がるし現実的ではない
ジョブ管理システムやコンパイラのバグが絡んでくるともうお手上げになる

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 18:08:55.67 .net]
シェルスクリプトなのにコンパイラのバグ?

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/16(土) 19:49:59.88 .net]
例で示しただけだから別にインタプリタでもなんでもいいよ

576 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/17(日) 01:23:14.24 .net]
バグに絡まれやすそうな奴だな

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/17(日) 07:15:51.53 .net]
>>549
rm -rfはシェル関数で。直接使う事は禁則。
rmしないでmv。定期的に掃除

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/18(月) 20:09:07.34 .net]
>>549
japanese.engadget.com/2016/04/15/rm-rf-qanda/

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/18(月) 20:24:48.32 .net]
ひでーw
__
タヒんでしまえよ

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/18(月) 22:44:34.25 .net]
シェルショッカーとかいうおじさんおるよな



581 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/25(月) 19:04:26.09 .net]
bashで、新しいscreenウィンドウを開いてそこで引数で指定したコマンドを実行する関数
を作りたいのですが、引数の展開をどうやればいいかで悩んでいます。
# 例:sc tail -f ./hoge.log
sc() {
# "cd $PWD; $@"ではダメだった
screen -t "$1" -X screen bash -c "cd $PWD; '$1' '$2' '$3' '$4' '$5' '$6' '$7' '$8' '$9'"
}
10個以上の引数に対応するにはどう書くのがいいでしょうか?

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/25(月) 21:45:04.21 .net]
>>570
"cd $PWD; $@" だと screen のコマンド全体が、
"screen" "-t" "$1" "-X" "screen" "bash" "-c" "cd $PWD; $1" "$2" ...
という引数に展開される。
これは "cd $PWD; $@" がまず、"cd $PWD; ""$@" に変換され、
"$@" が "$1" "$2" ... に展開されて
"cd $PWD; ""$1" が連結されて "cd $PWD; $1" になるため。

なお set - "$@" cd "$PWD" ";" "$@" したら、 screen に渡るのは ; までで肝心のコマンドは渡らない。

"cd $PWD; $*" だと "cd $PWD; $1 $2 $3 ..." (配列としては展開されずに1つの文字列扱いになる)
に展開されて意図した動きになる。 ただ、引数に空白が入る場合はエスケープ入れないとNGね。

583 名前:570 mailto:sage [2016/04/26(火) 19:09:31.05 .net]
空白のエスケープはどうやればいいんでしょう?

584 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/26(火) 19:43:17.56 .net]
>>572
シングルクォートと空白の例。
sc() {
  screen -t "$1" -X screen bash -c "cd $PWD; $*"
}

sc date +Date=\\\'%y\\\ %m/%d

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/27(水) 12:24:16.19 .net]
...なんだかなあ
与えたスクリプトの中で、展開すれば?
sh -c 'some command; "$@"' 'dummy' "$@"


sc() {
  screen -t "$1" -X screen bash -c 'cd $PWD; "$@"' 'dummy' "$@"
}

586 名前:570 mailto:sage [2016/04/27(水) 19:13:45.99 .net]
なるほど、dummy 以降が -c で与えたコマンドへの引数になることを利用するわけですね。

ちなみに
screen -t "$1" -X screen bash
は冗長で
screen -t "$1" bash
でいいみたいでした。

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/04/27(水) 21:07:51.80 .net]
-c の次の次の引数からが $0 以降になるとは知らなかったなぁ。 勉強になったわ。
これは -c AAA BBB CCC DDD ... のとき、BBB 以降は実行されないけど BBB が $0 として、
CCC DDD ... が引数としてセットされた状態でプロセスが開始され、実際に実行される内容の
AAA 内に展開されずに渡された "$@" があるので CCC DDD ... が実行されるってことかな。

ちなみに cd の部分は 'cd "'"$PWD"'"; "$@"' の方がいいかな。
( パスに空白が入っていてもエラーにならないがダブルクォーテーションが入っていたらNGではあるが。 )

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/12(木) 21:13:45.79 .net]
コマンド応答が返ってくるまでの表示に文字を回転させてりしてみたくなった。
例えば、「*」がくるくると回っていたり・・・

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/13(金) 00:30:46.45 .net]
ええね

590 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/13(金) 19:21:12.15 .net]
>>577
難しい…どなたかヒントを



591 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/13(金) 20:19:09.81 .net]
>>579
なんだよ、すごい目算があって開発宣言したと期待してたのに

まず、文字回すのは無理
/|\-を同じ位置で順番に繰り返す出す程度

あと、コマンド実行中は通常シェルはwait状態で止まってしまうので
コマンドをバックグラウンドで起動してシェルを動かし続けるか
別プロセスを同時に起動してそいつに表示させる必要がある
どっちもコマンドラインで明示しなきゃならん
普通に起動して同じことをさせるにはシェルの改造くらいしか思いつかん
それともzshくらいになるとすごいモジュールがあったりするのだろうか

592 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/13(金) 20:43:34.11 .net]
OpenGLでぐりぐり回そうぜ

593 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/13(金) 20:57:15.29 .net]
bash 依存だけど、こんなんでどう

sleep 10 & {
tput civis
while kill -0 %- &>/dev/null
do
for c in {-,/,\|,\\}
do
printf '%c\r' $c
sleep 0.1
done
done
tput cvvis
}

途中で interrupt されるとカーソルが見えないままになるけど

594 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/14(土) 20:15:01.86 .net]
npm見れば解決しそう

595 名前:534 [2016/05/21(土) 22:04:30.88 .net]
>>535
お陰さまで最低限現場の記述ルールに則ったものは普通に作れるようになりましたm(_ _)m

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/23(月) 00:15:19.48 .net]
>>559
超遅レスだかインフラでも
そんな事言わないあり得ない偏見すごいな
>>558
が伝えたいニュアンスは分かるけど
端的に考え方を言い表したいがために
登場場面が根本的に違う2つの用語だけで
端的に伝えようとするセンスが酷い
それにそもそも元の話と何かズレてるし
後輩育成とかは絶対に任せられないタイプ

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/23(月) 08:05:15.40 .net]
ログファイルのローテート処理のお勧め教えれ
元ファイルをコピーしてヌルを上書きすると
一瞬ログの内容ロストするから

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/23(月) 08:55:28.11 .net]
>>586
ログを出す側で制御 (SIGHUPとかで出力ログファイルを開きなおす) してくれないとその問題は防げない。

mkfifo で FIFO ファイル作ってログローテーション用後続スクリプトに一旦渡す方法やパイプで後続スクリプトに
渡してローテーションする方法も考えられるけど、FIFO のバッファがいっぱいになるとメインプロセス側が処理
待ち(write がブロック)したり、後続スクリプトの異常終了で SIGPIPE 食らってメインプロセスが死んだりする
のでお勧めできないそうな。

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/23(月) 16:33:22.23 .net]
syslogdを kill -STOP; ... ; kill -CONT じゃダメなん?

600 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/23(月) 17:04:28.65 .net]
logrotateでええやろ



601 名前:587 mailto:sage [2016/05/23(月) 23:22:16.85 .net]
>>588
syslogd がつかんでいるのはファイルハンドルであってファイルのパスじゃない。
なのでそれをやっても、リネームした古いファイルの方に書き続けてしまう。
例えば /var/log/messages に書き続けている状態でファイルを mv して messages.1 にしても、syslogdは
messages.1 の方に書き続ける。
kill -HUP するとファイルハンドルを閉じて /var/log/messages を開くので、ここでようやく messages 側に書き始めるわけ。
# STOP/CONT は意味がない。 logrotate では syslogd のログについては HUP しかしない。

>>589
logrotate の samba のログ設定には copytruncate って書いてあるでしょ?
つまり logrotate が >> 586 の言う「コピーしてファイルを空にする」処理をやっている。
samba は syslogd のような開きなおす処理をしてくれないからこの実装にせざるを得ない。

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/24(火) 04:38:11.44 .net]
>>590
kill -HUP に対応してないsyslogdだったら、という話だろ。

kill -STOP してからログファイルを別ファイルにcpして、元のログは > file でゼロにする。
それで -CONT すればいいという話。

>syslogd がつかんでいるのはファイルハンドルであってファイルのパスじゃない。
というのは当然知ってるだろ。

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/24(火) 08:44:45.64 .net]
スレ違いになりつつあるが、便乗して質問。
STOP -> truncate -> CONT って安全?
TCP/UDPで待ち受けしているプログラムで syn やメッセージ取りこぼしたりとかしない?
fork する奴にも使える?

604 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/24(火) 09:37:37.23 .net]
>>592
TCPなら再送含めてOSがうまくやる
UDPだとバッファあふれたら消える
もともと消えるの前提だから再送はアプリの自己責任
forkしたら止まるのは当たり前だが指定したプロセスだけ
プロセスグループを指定したら該当するやつ全部
どの辺が疑問なのかむしろ知りたいわ

605 名前:592 mailto:sage [2016/05/24(火) 20:11:40.98 .net]
>>593
THX

> どの辺が疑問なのかむしろ知りたいわ
logrotate コマンドの copytruncate の欄に SIGSTOP すると良い、とは書かれていない
あたり、何か不都合があるんじゃないかと思うんだがどーよ?

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/24(火) 22:53:24.96 .net]
>>594
そいつとtcpもudpもforkも関係ないのになんで出てきた?

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/25(水) 08:40:27.70 .net]
tcp 再送は5分までいけるが、ロードバランサー/L7swの監視の場合にはファイルコピーしている
ちょっとした間にサービス停止として検知される可能性があるな。

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/25(水) 15:06:05.26 .net]
>>596
5分って、どこの標準か興味がある。

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/27(金) 20:10:08.30 .net]
>>586
普通は単純にリネームしてタッチする

610 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/28(土) 12:10:25.23 .net]
タッチして逮捕されたらリネームじゃないのか。



611 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 01:58:44.16 .net]
つ 座布団

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 20:46:35.04 .net]
ユニックスの入門本が一冊欲しいのですが何がいいでしょうか
特定のコマンドやシェルのノウハウとかではなく
多くの場面で通用する本当に基礎的な知識を学びたいと思っています
私自身はいずれシェルを書きたいと思っていますが
LS、CPコマンドなどの使い方を知りたいわけではないということです

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 20:57:27.92 .net]
>>601
UNIXスーパーテキスト
ってまだ売ってたっけ?

614 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 21:40:46.70 .net]
>>601
古い本だけど砂原秀樹さんほかの『プロフェショナルBSD』
UNIXのコマンドはこういうふうに使うという根本的なことの理解に役立つ

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 22:26:33.91 .net]
スレチにも回答してあげるとは優しいやつばっかやな

616 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/29(日) 23:19:55.20 .net]
>>601
入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

名著です。

これを挙げると古いとか文句を付ける馬鹿がいますが、無視してください。

617 名前:名無しさん@お腹いっぱい。 [2016/05/29(日) 23:20:36.49 .net]
あげ

618 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 00:14:11.32 .net]
>>604
お前の心が汚れているだけだ

619 名前:名無しさん@お腹いっぱい。 [2016/05/30(月) 03:08:51.89 .net]
shell から emacs 起動して終了すると、
[1] Done emacs
って出るよな?これって何が出しているんだろう?出来れば止めたい。

620 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 04:52:05.02 .net]
>>608
set +m しておくと出なくなるよ。(出してるのはシェル自身)



621 名前:名無しさん@お腹いっぱい。 [2016/05/30(月) 09:25:10.53 .net]
vim7.4使ってますが、書き込み時、sh -n みたいな、構文・文法チェックを
する方法はないでしょうか?
vimプラグインのsyntasticも試してみたのですが、.vimrcの記述のせいか
うまく動いてないようで。

何か簡単でうまい方法ありましたら、ご紹介ください。

622 名前:名無しさん@お腹いっぱい。 [2016/05/30(月) 10:19:27.79 .net]
>>609
どうもです。なるほどシェルが出しているのですか。
でも、なぜ emacs しか出ないのでしょう?

教えていただいた set +m 「ジョブ制御の無効」は bash のみでしょうか?
私は tcsh なのですが、tcsh でも同様の事は可能でしょうか?

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 18:00:07.40 .net]
ひとつ質問

シェルで2つの日時を元に所要時間を求めたい場合ぐぐるといろいろ方法はありますが
これが便利なコマンド一発で用意されていないのは需要がないと言うか
需要があった人が最終的に誰でも使える簡単な形にせずに終わらせたってことなんでしょうか?

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 18:55:30.71 .net]
>>612
広く使われるほどの需要はなかった

625 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 19:36:20.17 .net]
dateコマンドのオプションに互換性がなかったから。
GNU date限定とかならいいんだけど

626 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/30(月) 21:40:48.25 .net]
内部的にUNIX時間で持てば差分計算は簡単なような

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/31(火) 08:52:48.30 .net]
>>615
32bitマシンが絶滅するまでは難しいな。
あと20年普通に残りそうだし

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/31(火) 21:45:59.92 .net]
内部的にUNIX時間で持つってどういうこと?
内部というのは環境変数やシェル変数という意味?

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/31(火) 23:23:59.98 .net]
256bit機が普及するまで32bit機はなくならないだろうね。

630 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/05/31(火) 23:24:37.85 .net]
>>617
epochからの時間ってことじゃない?
>>616
difftime(3)て32bitと64bitで違うのかな



631 名前:超音波テロの被害者 [2016/06/01(水) 16:02:45.59 .net]
超音波テロの被害にあっています。
卑劣極まりない被害にあっています。

何が起こったかわからないときから、
わかってみれば、
まだ世の中に知られていない超音波テロ。

世の中の多数の振動源・発信源が
システム化され、 ネットワークを通して、
超音波・音波を集中させて
対象を攻撃するらしい。

超音波による物理的な力で、
ものが飛び、ものが壊れる。
それが人間の体に対してまで。

形のあるもの、ないもの、壊され、奪われ、
聞こえる声、音。超音波テロの加害者の声。
卑猥な内容、卑劣な内容、脅しやいたぶり。

632 名前:超音波テロの被害者 [2016/06/01(水) 16:03:08.53 .net]
身体の表面を突き抜け、内臓を攻撃される。
頭蓋骨を突き抜け、意識を失わされる。
臓器不全やがん、命に関わることまで。
人間の身体を壊そうとする超音波テロ。

日本国中、どこにいても超音波で襲われる。
車に乗っている人間が襲われる。
歩いている人間が襲われる。
自宅で超音波の攻撃を受ける。

人や社会が超音波で襲われ、
罪もない人が超音波で襲われ、
卑劣な被害にあっています。
被害を訴えても信じてもらえない。

「見続けるのがいやだから、殺して終わる」、
「証拠隠滅だ」という超音波テロの加害者の声とともに
強烈な超音波の攻撃。

叫ばされ、いたぶられ、それを口実にまた攻撃され、
超音波テロの、残酷残虐で、卑劣な攻撃の被害にあっています。
心の底から被害を訴え、祈っています。

天に神に届きますように。

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/01(水) 17:45:47.97 .net]
>620
これなんつーシェルのスクリプトですか?

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/02(木) 07:52:05.22 .net]
/bin/jpsh

635 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/02(木) 08:00:02.53 .net]
/bin/chouonpa/itaburare

636 名前:名無しさん@お腹いっぱい。 [2016/06/05(日) 11:03:53.19 .net]
ディレクトリを指定する時って、「/dir/」が正しいのか、「/dir」
にすべきか、最後の/をつけるかつけないかでどんな違いがあるのか
いつもすごく気になる。

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/05(日) 13:34:06.57 .net]
>>625
rsync や ln 、mv あたりはありなしで挙動がかわる。
ln や mv はオプションで一応制御できるけど

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/09(木) 19:13:38.61 .net]
json形式のデータをSQLのjoinみたいにキーで結合したいのですが
いいスクリプト知りませんか?
jqはできそうな感じなんだけど、サンプルのページが見当たらなくて

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/09(木) 21:10:02.49 .net]
>json形式のデータをSQLのjoinみたいにキーで結合したいのですが

cpanモジュール使うべし。
力技でゴリゴリでもできるかもしらんが、時間の無駄

640 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/09(木) 22:45:45.43 .net]
>>627
データがどんなもんか分からないので何とも言えないけど例えば
[
{"id": 1, "name": "Tom", "gender": 1},
{"id": 2, "name": "Alice", "gender": 2},
{"gid": 1, "gender": "male"},
{"gid": 2, "gender": "female"}
]
なんてJSONファイルがあって gender と gid で join する場合、

jq '
map(
(select(has("id")) | { k: .gender, v: { id: .id, name: .name }}),
(select(has("gid")) | { k: .gid, v: { geder: .gender }})
)
| group_by(.k)
| map((map(.v) | add))
' data.json

かなぁ。



641 名前:629 mailto:sage [2016/06/10(金) 01:11:22.91 .net]
あー、しまった、思いっきり間違えた…

jq '
(map(select(has("gid")) | {(.gid|tostring): .gender}) | add) as $g
|
map (select(has("id")) | .gender = $g[(.gender|tostring)])
' data.json

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/10(金) 01:28:18.48 .net]
[
{
"id": 1,
"name": "Tom",
"gender": "male"
},
{
"id": 2,
"name": "Alice",
"gender": "female"
}
]
できました、できましたけど書き方わからないです><

>>628
cpan使うのが主流なんですか?

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/10(金) 01:54:22.40 .net]
>>631
json 形式のデータを DB に insert する方法を調べた方がいいかも

644 名前:名無しさん@お腹いっぱい。 [2016/06/10(金) 14:14:19.71 .net]
>>631

いやそういうわけではなくて、pythonでもrubyでもいいけど
JSONとかXMLとかYAMLなどの定形式な文書からスライスして取
り出すなら、すでにある専用モジュールとか使ったほうが断然
速いってはなし。俺はperlしかわからんのでcpanモジュール。

perlなら
use JSON::XS;
して、

my $json = 'json.txt'
my $data = decode_json($json); #jsonからperlのハッシュに変換

あとは、ハッシュの内容をダンプしてデータ構造みながら
必要なデータだけを拾う。

print %$data{features}->[$cnt]->{properties}->{title} .

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/10(金) 16:33:17.98 .net]
使うべしって言った割にショボ過ぎ

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/10(金) 22:15:34.82 .net]
スレ的にもここはあくまでシェルスクリプトでやるべきだろ

なんでもありなら今はPythonの方がメジャー
もしくはRubyとか

647 名前:名無しさん@お腹いっぱい。 [2016/06/10(金) 23:07:20.19 .net]
場違いだったらすまん。
gomプレイヤーとかのソフト立ち上げるとスクリプトエラー出るんだけどどうしたらいい?
imgur.com/9hlJu8w

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/11(土) 00:12:44.31 .net]
スレチ

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/11(土) 00:34:35.87 .net]
スクリプトエラーとやらがでる

にちゃんでスクリプトで検索

シェルスクリプトとかよくわからんけどスクリプトって入ってるからここに書けば誰か完璧な答えを出してくれるはず


ゆとり、ここに極まれり

650 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/11(土) 03:40:49.78 .net]
引数を受けて同名のサブディレクリ直下にある全てのシェルスクリプト(.sh)を実行するってどう書けばいいんでしょうか?



651 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/11(土) 03:41:43.14 .net]
bash環境です。同名とは引数に指定された文字です

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/06/11(土) 03:53:01.79 .net]
find 引数 -name *.sh -exec {};
こんな感じなのだろうか。






[ 続きを読む ] / [ 携帯版 ]

前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