!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。
スレ立て時は以下の文を先頭行に加えて下さい。
後のつけ忘れ防止の為に複数行重ねて追加推奨
!extend:on:vvvvv:1000:512
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
シェルスクリプト総合 その29
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3efb-m2E0)
2018/09/22(土) 11:53:21.38ID:BBiLRgnj02デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 11:57:44.54ID:rfhCLeCra お約束
・特記なき場合、Bourne ShellもしくはPOSIX準拠のsh可換シェルが既定です
つまりシバンは#! /bin/shです。
他のシェル(bash, zsh, ksh, (d)ash, yash, posh, fish, (t)csh)などの専用機能に依存する場合は明示しましょう。
OS X, GNU/Linuxユーザーは/bin/shの実体がbashなので*特に*注意(自覚なきbashism---シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?)。
ただしDebian, Ubuntuなどでは/bin/shの実体はPOSIX sh互換のdashですのであまり気にしないでも大丈夫です。
FreeBSDユーザーは/bin/shの実体がashなので注意。
Solaris, OpenBSDユーザーは/bin/shの実体がkshなので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。
(参考URL: http://www.speech-lab.org/~hiroki/csh-whynot.euc)
・POSIXに準拠しましょう
有用なリンクはhttps://en.wikipedia.org/wiki/POSIXにまとめられています。
最新の仕様はこちらへ: http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIXのsh(1)に一番近いのはOpenSolaris由来のHeirloom sh、次点でDebianなどに搭載されているDash shell
Heirloom sh: http://heirloom.sourceforge.net/sh.html
Dash shell: http://gondor.apana.org.au/~herbert/dash/
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります
Manページや各種リンク(http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.htmlなど)を見ましょう。
apropos(1)ないしはman(1)の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
・特記なき場合、Bourne ShellもしくはPOSIX準拠のsh可換シェルが既定です
つまりシバンは#! /bin/shです。
他のシェル(bash, zsh, ksh, (d)ash, yash, posh, fish, (t)csh)などの専用機能に依存する場合は明示しましょう。
OS X, GNU/Linuxユーザーは/bin/shの実体がbashなので*特に*注意(自覚なきbashism---シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?)。
ただしDebian, Ubuntuなどでは/bin/shの実体はPOSIX sh互換のdashですのであまり気にしないでも大丈夫です。
FreeBSDユーザーは/bin/shの実体がashなので注意。
Solaris, OpenBSDユーザーは/bin/shの実体がkshなので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。
(参考URL: http://www.speech-lab.org/~hiroki/csh-whynot.euc)
・POSIXに準拠しましょう
有用なリンクはhttps://en.wikipedia.org/wiki/POSIXにまとめられています。
最新の仕様はこちらへ: http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIXのsh(1)に一番近いのはOpenSolaris由来のHeirloom sh、次点でDebianなどに搭載されているDash shell
Heirloom sh: http://heirloom.sourceforge.net/sh.html
Dash shell: http://gondor.apana.org.au/~herbert/dash/
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります
Manページや各種リンク(http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.htmlなど)を見ましょう。
apropos(1)ないしはman(1)の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
3デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 11:58:06.49ID:rfhCLeCra 初心者へのアドバイス
・適した道具を判断するのも頭の重要な使い方。
シェルスクリプトよりもPerlまたはPythonの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらman(1)を引きましょう。
・思い通りに動かないときは、まずはsh(1)の-xオプションでトレースしましょう。
回答者への注意事項
・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに、「そういうのはPerl, Python使え」と回答するのはやめましょう。
安易にPerlやPythonに逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。
・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。
・適した道具を判断するのも頭の重要な使い方。
シェルスクリプトよりもPerlまたはPythonの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらman(1)を引きましょう。
・思い通りに動かないときは、まずはsh(1)の-xオプションでトレースしましょう。
回答者への注意事項
・相手がシェルスクリプトでの処理方法を質問しているのにもかかわらず、よく知りもせずに、「そういうのはPerl, Python使え」と回答するのはやめましょう。
安易にPerlやPythonに逃げずに小さなコマンドを組み合わせシェルスクリプトで処理するのが頭のいいやり方。
・質問に対して問題が間違ってるといちゃもんをつけるのも避けましょう。
4デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 12:01:23.98ID:rfhCLeCra (補足:今スレのみ)
同名スレッドが乱立していますが、Unix版→ム版移行に伴い荒らしとミスが横行したためであり、実際に使用されるのはこのスレのみです。同名の他スレは利用しないように願います
同名スレッドが乱立していますが、Unix版→ム版移行に伴い荒らしとミスが横行したためであり、実際に使用されるのはこのスレのみです。同名の他スレは利用しないように願います
5デフォルトの名無しさん (ワッチョイ 49d2-Y82R)
2018/09/22(土) 12:08:49.50ID:dRsA3CmI0 【震災を容認、原爆脳】 安部「小型核なら合憲」 ロシア「偽装実験は容易」 読売「原爆で人工地震」
http://rosie.5ch.net/test/read.cgi/liveplus/1537583222/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1537583222/l50
6デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 12:15:31.76ID:rfhCLeCra 早速役にたったな
これでワッチョイをNGすればこいつは消える
これでワッチョイをNGすればこいつは消える
7デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/22(土) 17:29:57.71ID:dKJ+Zat70 前のスレでASCII US,RSを区切り文字にしたファイル形式について話してた者だけど
エスケープ文字を\␟,\␞の二つにできないかな。
これで大分処理が楽になるんだけど,この規則で区別できない二種類以上の文字列があれば教えてほしい。
エスケープ文字を\␟,\␞の二つにできないかな。
これで大分処理が楽になるんだけど,この規則で区別できない二種類以上の文字列があれば教えてほしい。
8デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 18:51:26.94ID:DxQImHVza 前スレも埋まらないうちから主張はじめんなや
前スレでやれ
前スレでやれ
9デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/22(土) 18:52:48.23ID:n0R7Fe5t0 マジ同意
10デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/22(土) 20:16:11.27ID:dKJ+Zat70 えぇ……
11デフォルトの名無しさん (ワッチョイ c198-coYL)
2018/09/22(土) 20:47:04.94ID:Ig57RuXo012デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 20:49:57.60ID:PGp2AKzL0 それだとな
USとRSのasciiデータを含むことができないワケ
やっぱりな低学歴知恵遅れは致命的に頭悪い
USとRSのasciiデータを含むことができないワケ
やっぱりな低学歴知恵遅れは致命的に頭悪い
13デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 21:19:04.63ID:SEEeyc/qa14デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/22(土) 21:37:44.00ID:Ma0PioWH0 > ついでに俺はスレ立てた本人だ
1デフォルトの名無しさん (ワッチョイ 3efb-m2E0)2018/09/22(土) 11:53:21.38ID:BBiLRgnj0
13デフォルトの名無しさん (アウアウカー Sae9-m2E0)2018/09/22(土) 21:19:04.63ID:SEEeyc/q
ワッチョイ
アウアウカー
なるほどねw
1デフォルトの名無しさん (ワッチョイ 3efb-m2E0)2018/09/22(土) 11:53:21.38ID:BBiLRgnj0
13デフォルトの名無しさん (アウアウカー Sae9-m2E0)2018/09/22(土) 21:19:04.63ID:SEEeyc/q
ワッチョイ
アウアウカー
なるほどねw
15デフォルトの名無しさん (ワッチョイ 2e81-Lcjh)
2018/09/22(土) 22:01:52.49ID:XHaRNOKU0 何でも喧嘩越しだなんて…
お前ら人生もっと楽に生きろよ
お前ら人生もっと楽に生きろよ
16デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/22(土) 22:04:10.95ID:SEEeyc/qa17デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/22(土) 22:16:05.03ID:n0R7Fe5t0 無敵だなw無敵という表現は正しくはないが
まあ、あんまカッカしないでw
まあ、あんまカッカしないでw
18デフォルトの名無しさん (ワッチョイ 42b3-qdKu)
2018/09/22(土) 22:21:58.24ID:j6So/S370 シュッ シュッ
∧∧ シュッ シュッ
(`・ω・) シュッ シュッ みんな、ここは飲んで気を落ち着かせるんだ!!
(つ と彡 / シュッ
/// /
/c□ /
/旦 /
//c□ ./
/旦 Y /
| | 旦 |
|旦 ガシャーン
ガシャーン
ガシャーン ガシャーン
∧∧ シュッ シュッ
(`・ω・) シュッ シュッ みんな、ここは飲んで気を落ち着かせるんだ!!
(つ と彡 / シュッ
/// /
/c□ /
/旦 /
//c□ ./
/旦 Y /
| | 旦 |
|旦 ガシャーン
ガシャーン
ガシャーン ガシャーン
19デフォルトの名無しさん (ワッチョイ 2e98-rhI1)
2018/09/22(土) 23:18:46.87ID:KDtJrl5K0 ワッチョイもついたようだし、スレ新しくなったので前スレのこれお願い
bashでさ、typesetで関数の中身を出力できるじゃん?
それをevalで評価したら同じ関数が出来上がるじゃん?
これってどれくらい信用できるんだろう?
作成した関数のコードそのままの形で出力されるなら
evalで評価して同じものができるだろうけど、
ぱっとみtypesetで出力するされたものをみると、
改行の位置とか変わって整形された状態になって
関数にはfunctionが頭に追加されてる。
元のコードをどれくらい書き換えるんだろうか?
これ以外になにか変わる事知ってたりする人いない?
bashでさ、typesetで関数の中身を出力できるじゃん?
それをevalで評価したら同じ関数が出来上がるじゃん?
これってどれくらい信用できるんだろう?
作成した関数のコードそのままの形で出力されるなら
evalで評価して同じものができるだろうけど、
ぱっとみtypesetで出力するされたものをみると、
改行の位置とか変わって整形された状態になって
関数にはfunctionが頭に追加されてる。
元のコードをどれくらい書き換えるんだろうか?
これ以外になにか変わる事知ってたりする人いない?
20デフォルトの名無しさん (ワッチョイ bd03-qdKu)
2018/09/22(土) 23:40:33.97ID:T1K71jdo021デフォルトの名無しさん (ワッチョイ 6ee9-1Zjn)
2018/09/23(日) 00:19:41.09ID:gqT47rCG0 ワッチョイでスレを立てたのは前スレを荒らしに荒らしまくった多数回線で自演するRubyアンチのPyキチだよ
自分だけが自演できるワッチョイスレを立てて工作したいんだと思う
次世代スレもワッチョイで立てようとしたけどあっちは失敗したみたいだし
自分だけが自演できるワッチョイスレを立てて工作したいんだと思う
次世代スレもワッチョイで立てようとしたけどあっちは失敗したみたいだし
22デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 00:21:35.03ID:IvXdDnc90 前スレの終わらせ具合からそう見えないこともないなww
23デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/23(日) 00:25:42.58ID:wRiEEsWva スレ立てたのも前スレ終わらせたのも俺だがそれのこと言ってんのか?
rubyもpythonも語ったことなんてないが妄想すごいですね
rubyもpythonも語ったことなんてないが妄想すごいですね
24デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 00:40:41.02ID:IvXdDnc90 うん、妄想は尽きないw
ちょっと終わらせ方が強引だったからねえ、ヤツならやりそうだなと。反省してっwまた、すぐ怒ったり(?)しないでね
ちょっと終わらせ方が強引だったからねえ、ヤツならやりそうだなと。反省してっwまた、すぐ怒ったり(?)しないでね
25デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 00:51:46.20ID:IvXdDnc90 発端となった>>7が全然続かないのな。もう続けてもええんやで
じゃなきゃ、前スレでやれでしかなかった、および、無理やり終わらせた意味がゼロだなw
じゃなきゃ、前スレでやれでしかなかった、および、無理やり終わらせた意味がゼロだなw
26デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 00:53:01.00ID:cRG95Xcq0 低学歴知恵遅れの戯言にだれも興味なんかない
まずその自覚がない
まずその自覚がない
27デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 00:54:17.26ID:cRG95Xcq0 まず相当頭悪いこと書いてる自覚がない
そこが問題だからな
そこが問題だからな
28デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 00:56:29.70ID:IvXdDnc90 ワンパターンのフレーズを繰り返すしかできないのあったが、悔しくてそれでもしてしまう自称賢いはんかくであった
としか見えないなw
としか見えないなw
29デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 00:57:32.98ID:cRG95Xcq030デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 00:58:37.38ID:cRG95Xcq0 頭悪いことを自覚できないかぎり
頭悪いのは治らない
コレは真理だからな
頭悪いのは治らない
コレは真理だからな
31デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/23(日) 01:02:12.95ID:wRiEEsWva なんでワッチョイつけた後になっても半角に構ってるんですかねぇ
とっととNGしてどうぞ
とっととNGしてどうぞ
32デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 01:04:05.84ID:IvXdDnc9033デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 01:04:07.40ID:cRG95Xcq0 まず勘違いしてるのは
オレが賢いとかいってるところ
オレが賢いのではなく
当事者が日常生活に支障をきたすであろうと考えられるぐらい頭悪いこと問題だからな
そういう問題だ
軽度の知的障害があると推認できる
オレが賢いとかいってるところ
オレが賢いのではなく
当事者が日常生活に支障をきたすであろうと考えられるぐらい頭悪いこと問題だからな
そういう問題だ
軽度の知的障害があると推認できる
34デフォルトの名無しさん (ワッチョイ 0676-p1FO)
2018/09/23(日) 01:05:09.76ID:IvXdDnc90 よく言うよ。不特定に向けてもそういうフレーズ使ってるくせに。ほんと自称賢いだな
35デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/23(日) 01:34:23.77ID:D4/zD5nR0 淫夢語録を使うな
36デフォルトの名無しさん (ワッチョイ 6ee9-4aAB)
2018/09/23(日) 02:37:03.28ID:Te/My51X0 別人なんですアピール終わった?
ほんとうざいわコイツ
ほんとうざいわコイツ
37デフォルトの名無しさん (ワッチョイ b181-Lcjh)
2018/09/23(日) 08:59:25.73ID:a7uxw1Gj0 前スレのPOSIX荒らしの頃から、雰囲気悪いなぁ
38デフォルトの名無しさん (ワッチョイ 618a-LQBg)
2018/09/23(日) 09:03:53.53ID:4WDm+Clw0 そんなに悔しかったんだ...
39デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/23(日) 12:00:26.57ID:MAME2I+ya 大学生が課題貼り始めたあたりから何かがおかしくなっていったな
極めつけはCSVだったが
極めつけはCSVだったが
40デフォルトの名無しさん (ワッチョイ bd03-qdKu)
2018/09/23(日) 12:30:25.47ID:0vXeudiz0 >>39
おまえが出入りしだしたあたりからだいぶおかしいでwおまえのせいとは言わんけどw
おまえが出入りしだしたあたりからだいぶおかしいでwおまえのせいとは言わんけどw
41デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/23(日) 12:51:24.23ID:MAME2I+ya42デフォルトの名無しさん (ワッチョイ 6da7-p1FO)
2018/09/23(日) 13:51:05.35ID:VGMMYKH/0 なんでそうすぐにムキになるんだか。>>39なんて俯瞰してもの言えないんじゃねと
43デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/23(日) 15:46:02.02ID:D4/zD5nR0 でもASCII区切り文字を使ったいいアイデアが出たので俺は嬉しいよ
44デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/23(日) 18:04:09.53ID:cRG95Xcq0 エクセルの出力結果みればわかるとおり
もともとなにも問題ない
低学歴知恵遅れがその出力より劣化したアイデア()を
ドヤ顔してだしてるだけだからな
それはな世間一般ではアイデアとはいわない
それは頭悪い寝言という
わかった?
もともとなにも問題ない
低学歴知恵遅れがその出力より劣化したアイデア()を
ドヤ顔してだしてるだけだからな
それはな世間一般ではアイデアとはいわない
それは頭悪い寝言という
わかった?
45デフォルトの名無しさん (ワッチョイ 42b3-Y16u)
2018/09/23(日) 20:05:39.90ID:i9SY9vW90 とお前は言う
46デフォルトの名無しさん (ワッチョイ bd03-qdKu)
2018/09/23(日) 21:39:22.13ID:0vXeudiz0 >>41
ムキになっとるのは何か自覚でもあったんか?w
ムキになっとるのは何か自覚でもあったんか?w
47デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/24(月) 07:30:26.77ID:csv6kfNU0 CSV、CSVうるせーんだよ、このCSV野郎が!
48デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/25(火) 00:49:55.83ID:lmrEE7TE0 Shell Scriptって国際化はできないの?
調べるとBashは$"text"→$"文"みたいなことができたらしいけどこれも今では使えないし(Bash 3.xで削除?)。
需要がないのかな やっぱり
調べるとBashは$"text"→$"文"みたいなことができたらしいけどこれも今では使えないし(Bash 3.xで削除?)。
需要がないのかな やっぱり
49デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/25(火) 01:56:25.59ID:BMMTvniR0 >>48
できるよ。gettext.shってのが用意されてる。
ライブラリになっていて、おそらくパスも通ってるはずだから
. gettext.shで読み込めるはず。
そしてeval_gettext関数を使って翻訳するわけだが、
http://www.nofuture.tv/diary/20130329.html の記事を見ると
> echo "$(eval_gettext "hello world")"
と書いてあるな?
eval_gettext "hello world"
だけじゃだめなんだろうか?
一般的には等価だし、これだけでもメッセージの抜き出しはできるはず
なにより"$(・・・)"を使うとforkが行われるから
WSLで遅くなることが懸念される
そのうち使うことになるとは思ってるが、まだ試してないのでよろしくw
できるよ。gettext.shってのが用意されてる。
ライブラリになっていて、おそらくパスも通ってるはずだから
. gettext.shで読み込めるはず。
そしてeval_gettext関数を使って翻訳するわけだが、
http://www.nofuture.tv/diary/20130329.html の記事を見ると
> echo "$(eval_gettext "hello world")"
と書いてあるな?
eval_gettext "hello world"
だけじゃだめなんだろうか?
一般的には等価だし、これだけでもメッセージの抜き出しはできるはず
なにより"$(・・・)"を使うとforkが行われるから
WSLで遅くなることが懸念される
そのうち使うことになるとは思ってるが、まだ試してないのでよろしくw
50デフォルトの名無しさん (ワッチョイ 469f-coYL)
2018/09/25(火) 02:52:25.49ID:VjhU4mZC0 >>48
え?これできないの?
http://www.unixuser.org/~ysjj/bash_script_i18n.html
しかし Linux の bash の man ページには $"string" あるなあ。
https://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html
え?これできないの?
http://www.unixuser.org/~ysjj/bash_script_i18n.html
しかし Linux の bash の man ページには $"string" あるなあ。
https://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html
51デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/25(火) 05:08:08.34ID:BMMTvniR0 だからセキュリティの理由により非推奨になったって書いてあるやん
一つ上のレスぐらい読もうよ
一つ上のレスぐらい読もうよ
52デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/25(火) 05:09:28.74ID:S/r6pG9La 長いから読んでもらえないんじゃね
53デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/25(火) 05:18:05.28ID:lmrEE7TE0 え,俺?
54デフォルトの名無しさん (アウアウカー Sae9-m2E0)
2018/09/25(火) 05:20:16.93ID:S/r6pG9La なんか俺は勘違いしたかもしれん、
>>52は無視してくれ
>>52は無視してくれ
55デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/25(火) 07:05:22.02ID:BMMTvniR056デフォルトの名無しさん (ワッチョイ 469f-3QZN)
2018/09/25(火) 08:29:51.94ID:VjhU4mZC0 >>51
今見た。元々リロード忘れて一つ上が見えない状態で書いてたのと、見えた後でリンク先見てなかったのでセキュリティの都合で非推奨になった事に気づかなかった。
でも非推奨ってことは使えないこともないのかな?だからmanページには残ってるとか?使わん方が良いことには変わりはないだろうが。
今見た。元々リロード忘れて一つ上が見えない状態で書いてたのと、見えた後でリンク先見てなかったのでセキュリティの都合で非推奨になった事に気づかなかった。
でも非推奨ってことは使えないこともないのかな?だからmanページには残ってるとか?使わん方が良いことには変わりはないだろうが。
57デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/25(火) 09:03:56.75ID:BMMTvniR0 > この方法はセキュリティ上の問題(シフトJISや中国語のエンコーディングではダブルクォーテーションを無効にできてしまうなど。
というような、ASCIIと互換性がない文字コードによる問題だから
そういう文字コード自体を非推奨として対応から外せたら良いのに
Unicode以外の文字コードが絶滅するのはいつになるんだろうな
というような、ASCIIと互換性がない文字コードによる問題だから
そういう文字コード自体を非推奨として対応から外せたら良いのに
Unicode以外の文字コードが絶滅するのはいつになるんだろうな
58デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/25(火) 22:39:41.88ID:lmrEE7TE0 shebangって書かないほうがいいのかもな。
> If the first line of a file of shell commands starts with the characters "#!",
> the results are unspecified
---http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
だそうだし
> One common historical implementation is that
> the execl(), execv(), execle(), and execve() functions
> return an [ENOEXEC] error for any file not recognizable as executable, including a shell script.
> When the execlp() and execvp() functions encounter such a file,
> they assume the file to be a shell script
> and invoke a known command interpreter to interpret such files.
> This is now required by POSIX.1-2017.
---http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html#tag_16_111_08
だし。
> If the first line of a file of shell commands starts with the characters "#!",
> the results are unspecified
---http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
だそうだし
> One common historical implementation is that
> the execl(), execv(), execle(), and execve() functions
> return an [ENOEXEC] error for any file not recognizable as executable, including a shell script.
> When the execlp() and execvp() functions encounter such a file,
> they assume the file to be a shell script
> and invoke a known command interpreter to interpret such files.
> This is now required by POSIX.1-2017.
---http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html#tag_16_111_08
だし。
59デフォルトの名無しさん (ブーイモ MM62-e5An)
2018/09/26(水) 00:23:55.64ID:+a+RcOTAM それは誤読だろ。
execveとかにシェルスクリプト渡したらどうなるか知らん、
execlpとか使えってことでしょ。
実装としてどっちで#!を解釈するかはOSに任せられている。
execveとかにシェルスクリプト渡したらどうなるか知らん、
execlpとか使えってことでしょ。
実装としてどっちで#!を解釈するかはOSに任せられている。
60デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 01:08:43.37ID:yzZF1GUc0 shebangって書かないほうがいいんじゃないかって話は
どこかの誰かがまとめてただろ
書かなくて良いんじゃないかと思うが
書かないとshellcheckが警告出すんだよな。
パラメータじゃない方法でシェルを指定する方法があれば良いんだが
どこかの誰かがまとめてただろ
書かなくて良いんじゃないかと思うが
書かないとshellcheckが警告出すんだよな。
パラメータじゃない方法でシェルを指定する方法があれば良いんだが
61デフォルトの名無しさん (ワッチョイ 5dc3-zlPI)
2018/09/26(水) 06:41:40.90ID:aDQj+U85062デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/26(水) 07:00:32.41ID:p8TYnMT5063デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 07:43:20.75ID:yzZF1GUc0 ったく、そっちじゃねーよ
https://togetter.com/li/1077808
簡単にまとめるとだな。Androidでは sh は /bin/sh に存在しない
/system/bin/sh だから、どちらでも通じるシバンは書けない
なら書かなくて良いのでは?
→ そのとおり。POSIXではシバンがなければshで起動されると明記されてる
(注意 ログインシェルとしてcshを使用してる場合、先頭一文字目が#
つまりコメント行だったらcshで起動されるので:コマンドなどで無効化する
cshはファイルの先頭が#でなければPOSIX shで起動する)
https://togetter.com/li/1077808
簡単にまとめるとだな。Androidでは sh は /bin/sh に存在しない
/system/bin/sh だから、どちらでも通じるシバンは書けない
なら書かなくて良いのでは?
→ そのとおり。POSIXではシバンがなければshで起動されると明記されてる
(注意 ログインシェルとしてcshを使用してる場合、先頭一文字目が#
つまりコメント行だったらcshで起動されるので:コマンドなどで無効化する
cshはファイルの先頭が#でなければPOSIX shで起動する)
64デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/26(水) 08:05:31.15ID:p8TYnMT50 ちなみに
bash$ cat ./sbtest.sh
ps -o comm= $$
bash$ ./sbtest.sh
bash
↑↑ Bashじゃねーか
っていう罠もある。
bash$ cat ./sbtest.sh
ps -o comm= $$
bash$ ./sbtest.sh
bash
↑↑ Bashじゃねーか
っていう罠もある。
65デフォルトの名無しさん (ワッチョイ 46e7-Om/S)
2018/09/26(水) 09:25:36.26ID:pB5sfbMh0 ちょっと質問です。
プログラムが終了していたら再起動し、20秒以上動いていたら強制終了させて再起動したい。
どう書けばいいですか?
プログラムが終了していたら再起動し、20秒以上動いていたら強制終了させて再起動したい。
どう書けばいいですか?
66デフォルトの名無しさん (アウアウカー Sae9-rLjT)
2018/09/26(水) 09:56:06.94ID:QtvShas/a >>65
そうだなあ。Linuxとかならkillでシグナル番号0を送ると指定のプロセスの生死を確認できるのでそれ利用して作るかな。
しかしその場合は動いているプロセスのPIDがわからないとダメだ。これがわからない状態でやらねばならない場合はpsの出力にgrepして探すかな。
そうだなあ。Linuxとかならkillでシグナル番号0を送ると指定のプロセスの生死を確認できるのでそれ利用して作るかな。
しかしその場合は動いているプロセスのPIDがわからないとダメだ。これがわからない状態でやらねばならない場合はpsの出力にgrepして探すかな。
67デフォルトの名無しさん (オッペケ Sr71-/xLO)
2018/09/26(水) 10:01:22.38ID:FJCeOZRMr > プログラムが終了していたら再起動し、
親シェルスクリプト(プログラム)作ってループ起動
例えばcronの5分間隔とかにすると隙間が開く可能性がある
> 20秒以上動いていたら強制終了させて再起動したい。
監視シェルスクリプト(プログラム)作る
起動させた時間はpsコマンドで分かる
今の時刻はdateコマンドで分かる
強制終了はkillコマンドでできる
監視の間隔(チェックを何分おきにやるか)は自分で決める
例えば1分間隔で監視したら最悪60秒以上動く場合がある
waitしないループは結構CPUに負荷をかけるから注意
親シェルスクリプト(プログラム)作ってループ起動
例えばcronの5分間隔とかにすると隙間が開く可能性がある
> 20秒以上動いていたら強制終了させて再起動したい。
監視シェルスクリプト(プログラム)作る
起動させた時間はpsコマンドで分かる
今の時刻はdateコマンドで分かる
強制終了はkillコマンドでできる
監視の間隔(チェックを何分おきにやるか)は自分で決める
例えば1分間隔で監視したら最悪60秒以上動く場合がある
waitしないループは結構CPUに負荷をかけるから注意
68デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 11:15:01.91ID:yzZF1GUc0 こんな感じかねぇ
プログラム名からプロセスIDを取得して変数に入れる
while :; do
psコマンドでプロセスID変数の起動時間取得
if 取得できたら; then
if 20秒以上経過していたら; then
kill プロセスID
fi
else # 取得できなかったら
プログラム起動 &
新たなプロセスIDを変数に入れる
fi
sleep 1
done
プログラム名からプロセスIDを取得して変数に入れる
while :; do
psコマンドでプロセスID変数の起動時間取得
if 取得できたら; then
if 20秒以上経過していたら; then
kill プロセスID
fi
else # 取得できなかったら
プログラム起動 &
新たなプロセスIDを変数に入れる
fi
sleep 1
done
69デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 15:07:59.55ID:yzZF1GUc0 setコマンドで変数一覧が見れる機能の使い道にやっと気づいた
man bashにはこうある
> オプションなしの場合は、シェル変数全ての名前と値の組が表示されます。
> 表示は、現在設定されている変数を設定や再設定をする入力 として
> 再利用できるフォーマットで行われます。
ようは変数のシリアライズとデシリアライズだよなーと思ってた
でもそうだとすると普通は特定の変数のみシリアライズ&デシリアライズしたいわけで
全部だされても困る。指定された変数だけ表示できないのか?
変数の中には改行が含まれることもあるから、絞り込むのも大変だぞ
ちなみになんのために俺がsetを調べていたかと言うと、サブシェルの中から
変数の値を返す方法はないものかと(再度)調べていた。
いわゆるwhile read の中で行数数えても、変数は元に戻る問題な
i=0
cat /etc/hosts | while read line; do
i=$((i+1))
done
echo $i # whileがサブシェルで実行されるからもとに戻る
この解決方法として、echoでevalできる形の文字列を返してサブシェルの外で
evalするやり方。このテクニックは最近俺の中で常識となっていた。
でもな、setでevalできる文字を返せるのはわかる。だが欲しいのは変数 i だけなんだよ!
set使えねーなって思ってた。
頭が硬かった。setで表示されたものすべてをevalすりゃいいんや。
サブシェルの中の変数は、サブシェルの外を引き継いてるんだから変えない限り同じ。
evalしても変わらない。いちいち必要なものだけechoする必要なかったんや
man bashにはこうある
> オプションなしの場合は、シェル変数全ての名前と値の組が表示されます。
> 表示は、現在設定されている変数を設定や再設定をする入力 として
> 再利用できるフォーマットで行われます。
ようは変数のシリアライズとデシリアライズだよなーと思ってた
でもそうだとすると普通は特定の変数のみシリアライズ&デシリアライズしたいわけで
全部だされても困る。指定された変数だけ表示できないのか?
変数の中には改行が含まれることもあるから、絞り込むのも大変だぞ
ちなみになんのために俺がsetを調べていたかと言うと、サブシェルの中から
変数の値を返す方法はないものかと(再度)調べていた。
いわゆるwhile read の中で行数数えても、変数は元に戻る問題な
i=0
cat /etc/hosts | while read line; do
i=$((i+1))
done
echo $i # whileがサブシェルで実行されるからもとに戻る
この解決方法として、echoでevalできる形の文字列を返してサブシェルの外で
evalするやり方。このテクニックは最近俺の中で常識となっていた。
でもな、setでevalできる文字を返せるのはわかる。だが欲しいのは変数 i だけなんだよ!
set使えねーなって思ってた。
頭が硬かった。setで表示されたものすべてをevalすりゃいいんや。
サブシェルの中の変数は、サブシェルの外を引き継いてるんだから変えない限り同じ。
evalしても変わらない。いちいち必要なものだけechoする必要なかったんや
70デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 15:10:23.80ID:yzZF1GUc0 長文乙w つーわけで、サブシェルの中から変数を返す方法 汎用版
i=0
eval "$(cat /etc/hosts | { while read line; do
i=$((i+1))
done
set
})"
echo $i # 俺の環境では11だった
set呼ぶだけで、簡単に変数返せるぞ
i=0
eval "$(cat /etc/hosts | { while read line; do
i=$((i+1))
done
set
})"
echo $i # 俺の環境では11だった
set呼ぶだけで、簡単に変数返せるぞ
71デフォルトの名無しさん (ワッチョイ 2e98-coYL)
2018/09/26(水) 15:11:28.48ID:yzZF1GUc0 ちなみにbashとかだとデフォルトでは関数まで返しちゃうので注意な
72デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/26(水) 22:48:58.32ID:p8TYnMT50 シェルスクリプトじゃないんだけど
Makefileのファイル名(例えばGNUMakefileだったりmakefileだったりするよね)
を取得したりってできる?
つまり
$ cat ./Makefile
all:
>---echo $0
$ make
Makefile
みたいな。もちろんMakefileはshが解釈しないんで, $0を使うことはできないけど。
Makefileのファイル名(例えばGNUMakefileだったりmakefileだったりするよね)
を取得したりってできる?
つまり
$ cat ./Makefile
all:
>---echo $0
$ make
Makefile
みたいな。もちろんMakefileはshが解釈しないんで, $0を使うことはできないけど。
73デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/26(水) 23:44:41.88ID:p8TYnMT50 追記
GNU makeなら$(MAKEFILE_LIST)が使えるらしいがFreeBSDでも使いたいんだよね……
GNU makeなら$(MAKEFILE_LIST)が使えるらしいがFreeBSDでも使いたいんだよね……
74デフォルトの名無しさん (ワッチョイ 77a7-c77k)
2018/09/27(木) 00:12:48.73ID:indBRC1Z0 MAKEFILE_LIST
https://www.freebsd.org/cgi/man.cgi?query=make&apropos=0&sektion=0&manpath=FreeBSD+6.2-RELEASE&format=html
https://www.freebsd.org/cgi/man.cgi?query=make&apropos=0&sektion=0&manpath=FreeBSD+6.2-RELEASE&format=html
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【調査】クレジットカード、1人何枚持つのが「平均的」?★2 [ひぃぃ★]
- 高市内閣、支持率横ばい75% (日経・テレ東 世論調査) ★2 [少考さん★]
- 【作家】高市総理支持の背景に見えるヤンキー的「ケンカ上等!」と「日本人は特別だ」感がとても怖い 北原みのり [少考さん★]
- 「レアアースを精製できる技術は日本が持っている、日本にレアアース来なければ中国は精製できない」 衆議院答弁 ★2 [お断り★]
- 宮崎あおい「電子レンジ持ってない」“丁寧な暮らし”を告白「ごはんを温め直すときも蒸し器」に「凄すぎ」の声 [muffin★]
- 「ヘイトスピーチをやめろ」 各地の「移民反対デモ」に抗議活動 [蚤の市★]
- 🏡🌊💥👊😅👊💥🌊🏡
- 【実況】風真いろはのえちえち4周年(こよりあり)
- 愛国者「国を守りたい。これのなにが悪いの?」👈これ [834922174]
- 【高市悲報】小林鷹之「外務省が中国に反論している。党として外務省を後押しする」 [931948549]
- おさかなさんあつまれえ
- 【世論】高市を支持する75%!前月比1%増 [219241683]
