18/06/11 06:07:49.77 .net
つまらない点だから指摘していなかったが、
この話で U+ という表記はだめだぞ
U+ というのはUnicodeの話で+の後の16進数は
文字集合におけるコードポイントだ
U+001Eは符号方式がUTF-8だと0x1Eになるが、
UTF-16だと 0x00 0x1E(ビッグエンディアンの場合)
もしくは 0x1E 0x00 (リトルエンディアンの場合) となる
U+ だとUnicodeという文字集合を表すことになるが
符号方式がUTF-8だと決めつけることはできない
510:名無しさん@お腹いっぱい。
18/06/11 09:45:54.74 .net
あほか
最初に本データの形式仕様から制定してもいいという条件を書かないから
みんな処理元のデータ形式は弄れない前提で答えてるんやん
説明不足なのに自分だけ神視点でお題気取りか
死ぬほど痛々しいわ
511:名無しさん@お腹いっぱい。
18/06/11 10:09:41.26 .net
ようやく気づいたわ
スレを盛り上げたかったんやな
512:名無しさん@お腹いっぱい。
18/06/11 10:26:48.37 .net
俺が主役が強すぎて贔屓目にみてもだな
513:名無しさん@お腹いっぱい。
18/06/11 10:40:14.39 .net
日本語で
514:名無しさん@お腹いっぱい。
18/06/11 11:22:26.93 .net
>>490
> 最初に本データの形式仕様から制定してもいいという条件を書かないから
> みんな処理元のデータ形式は弄れない前提で答えてるんやん
データを加工(エスケープ)していいと書いてないのに勝手に加工してるやん?
だから変えたら駄目って書いてないなら変えていいって前提で
答えてるでしょ?
515:名無しさん@お腹いっぱい。
18/06/11 11:29:27.18 .net
スレは十分伸びたからもうええやろ
何と戦ってるんや
516:名無しさん@お腹いっぱい。
18/06/11 11:43:52.49 .net
自作自演ではないか
517:名無しさん@お腹いっぱい。
18/06/11 13:33:30.08 .net
結局特に解決や参考になるような話は出なかったね
まあ今更CSVで新ネタも出ないだろう
518:名無しさん@お腹いっぱい。
18/06/11 13:38:57.30 .net
まだお前CSVって言ってんのか?
そんなにCSVの話だと勘違いしていたことが
ショックだったのか?
519:名無しさん@お腹いっぱい。
18/06/11 13:40:15.04 .net
もう引っ張るなや子供かよ
520:名無しさん@お腹いっぱい。
18/06/11 13:42:59.29 .net
元データの上書きとバッファにコピーしての加工を同列に語っちゃうんだすげえな
ていうか元データの仕様からやっていいなら最初から↓で
改行的な区切り文字を許さない仕様にすればいいだけじゃね
> syori "a1" "a2" "a3" "a4"
> syori "b1" "b2" "b3" "b4"
> syori "c1" "c2" "c3" "c4"
521:名無しさん@お腹いっぱい。
18/06/11 13:44:44.59 .net
さんざん偉そうだが全くコードを出さないのでお察しでもういいだろう
522:名無しさん@お腹いっぱい。
18/06/11 14:09:05.24 .net
>>500
特に指定がない部分に関しては、
自由に変えていいと言ったの
改行が含まれてるとか、カンマやダブルクォートが含まれてるとかは
指定されているので、そこは変えたら駄目
当たり前だろ、ガキみたいな言い訳すんな
523:名無しさん@お腹いっぱい。
18/06/11 14:10:12.79 .net
> 自由に変えていいと言ったの
変えていいと言うか、もともと指定がないから
変えるのではなくどんなものでもOKってことだが
524:名無しさん@お腹いっぱい。
18/06/11 14:11:48.62 .net
>>502
これには同意する
変えてもいい/変えるべきなのは区切り文字。
525:名無しさん@お腹いっぱい。
18/06/11 15:25:33.31 .net
もういい加減コードで語れ
どれほど偉そうにしてもコードがアレだったらアレだし、偉そうにしてなくても素晴らしいコードはそれだけで尊敬されるだろう。後者が断然かっこいいのに
526:名無しさん@お腹いっぱい。
18/06/11 16:00:25.01 .net
意訳 参考にしたいのでコード教えてください
527:名無しさん@お腹いっぱい。
18/06/11 16:04:12.37 .net
いや、全然。使わないもの。それも勝手なお題のだし
まあ勉強のためというのでなら、それはあるかもだが、どんなんだかだな。そもそもコードはそういうものだろうし、教えてやるって立場なんだしなw
528:名無しさん@お腹いっぱい。
18/06/11 16:50:37.25 .net
>>506
言ってやるなw
529:名無しさん@お腹いっぱい。
18/06/11 17:10:06.71 .net
結局一行も書けてない
530:名無しさん@お腹いっぱい。
18/06/11 17:15:08.96 .net
ようやくこのスレも静かになるな…
531:名無しさん@お腹いっぱい。
18/06/11 17:51:10.54 .net
そう思うやろ? 次のネタ準備中やで
532:名無しさん@お腹いっぱい。
18/06/11 17:56:57.42 .net
なにこいつ
533:名無しさん@お腹いっぱい。
18/06/11 18:49:50.82 .net
こいつもしかしてこの間の「標準入力と標準エラー出力を同時に操作したい」のアホか。
534:名無しさん@お腹いっぱい。
18/06/11 18:55:33.57 .net
これ以上くだらん問答するならコテハンつけてくれ
535:名無しさん@お腹いっぱい。
18/06/12 03:51:38.30 .net
>>513
これって解決したんだっけ
536:名無しさん@お腹いっぱい。
18/06/12 06:46:40.08 .net
今時Python使わないでわざわざシェル使う理由って?
537:名無しさん@お腹いっぱい。
18/06/12 08:01:38.11 .net
Pythonを使う理由が特にないから
538:名無しさん@お腹いっぱい。
18/06/12 08:37:27.40 .net
pythonであるコマンドを実行して
それを他のコマンドに流すみたいな
ことが簡単にできたらね
539:名無しさん@お腹いっぱい。
18/06/12 10:53:58.20 .net
普通にできるぞ
540:名無しさん@お腹いっぱい。
18/06/12 11:54:38.75 .net
>>519
じゃあ、これ相当のことをやってみて
ここまで簡潔に書ける言語をシェルスクリプト以外しらない
シェルスクリプトは(特定の用途に対して)最善だから使ってるんだよ
541:名無しさん@お腹いっぱい。
18/06/12 11:55:23.82 .net
>>519
じゃあ、これ相当のことをやってみて
cat /etc/password | grep /bin/bash | cut -d: -f1
(なんかブロックされたからパスワードを大文字にしてる)
ここまで簡潔に書ける言語をシェルスクリプト以外しらない
シェルスクリプトは(特定の用途に対して)最善だから使ってるんだよ
542:名無しさん@お腹いっぱい。
18/06/12 12:05:07.20 .net
>>520
これってどれ?
ここ>>282-以降にある記述だとてんで仕様になってないから、
仕事レベルとまではいかないまでも、
学生演習の問題として出せる程度には仕様をまとめて書いて。
あとPythonに限らずスクリプト言語はどれでも
シェルにパイプ繋いで任意のシェルコマンドが実行できるから、
シェルにできてPythonでできないことなんてないよ。
勿論シェルでできないことも普通にできるし。
543:名無しさん@お腹いっぱい。
18/06/12 12:10:52.66 .net
大文字w
544:名無しさん@お腹いっぱい。
18/06/12 12:12:33.73 .net
>>522
これは、>>521に訂正しておいた。見れてるやろ?
>>523
多分 /etc/p@ssw0rd がブロックされるんだと思う
545:名無しさん@お腹いっぱい。
18/06/12 12:13:42.07 .net
>>522
> シェルにできてPythonでできないことなんてないよ。
あるよ。
(特定の用途に対して)シェルスクリプトほどに "簡潔にできない"
546:名無しさん@お腹いっぱい。
18/06/12 12:14:36.84 .net
そりゃまあ、冗長でいいなら、アセンブラでなんでも作れますわなw
作れるか作れないかの話なんかしてない
547:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/12 13:05:44.44 .net
>>528
やっぱりそのわかりにくいのが限界ですよね
551:名無しさん@お腹いっぱい。
18/06/12 13:48:35.13 .net
>>527
> でもたとえば改行もデータの一部として扱いたいみたいに向いてない用途だと
> 書きやすさも長さも逆転したりする。
まだこだわってんのかw
中身がない反論(?)は惨めなだけやで?
552:名無しさん@お腹いっぱい。
18/06/12 13:51:53.23 .net
老害じじいかよ
553:名無しさん@お腹いっぱい。
18/06/12 13:55:48.66 .net
その話続けたければいい加減名前つけろ
NGするから
554:名無しさん@お腹いっぱい。
18/06/12 13:57:32.52 .net
だな。なんで、へー、そう書けるんだとかならずに、あれが駄目これが駄目ってばっかなんかな。会話として見ててくもそ面白くない、いらいらすんなw
555:名無しさん@お腹いっぱい。
18/06/12 14:08:40.82 .net
>>527
> pythonはもっと汎用言語よりだからずっと長くなる。
汎用言語だから長くなるんじゃなくて、
Pythonには向かない作業だから長くなるっていうのが正解
556:名無しさん@お腹いっぱい。
18/06/12 18:38:07.06 .net
>>529
RFC準拠ってなんの話してるの?
CSV形式ではないと明確に言われてるのに
まだCSV形式にこだわってるの?
557:名無しさん@お腹いっぱい。
18/06/12 18:40:26.84 .net
よほどお前がこだわってるな。てかキモいわ
558:名無しさん@お腹いっぱい。
18/06/12 18:46:13.86 .net
俺はレスしただけだけど?
>>529が書かなければ、この話をすることもなかった
559:名無しさん@お腹いっぱい。
18/06/12 18:49:00.93 .net
新参なので>>513ってなんのこっちゃと、ちょっと前スレの当該箇所を流し読みしてはいた。ふーんてな
で、>>538となんか同じようなのがあったようなww
560:名無しさん@お腹いっぱい。
18/06/12 18:51:25.65 .net
お前の落ち度だってのはわかった
561:名無しさん@お腹いっぱい。
18/06/12 18:52:26.75 .net
>>540
>>538のな?w
562:名無しさん@お腹いっぱい。
18/06/12 19:00:28.24 .net
自分のことだって自覚してるからレスしたんだろ?
563:名無しさん@お腹いっぱい。
18/06/12 19:03:32.17 .net
へ?
さすが、自分のことだけはよくわかってるな。それはお前がそうだからだろう
何を言っているのかわからん、>>538によく似合うレスだなっていう
564:名無しさん@お腹いっぱい。
18/06/12 19:12:05.82 .net
どうも同一人物みたいだが(>>539に対しての?>>540あたりからも)、だとしたら>>513はすげえなっということでw
565:名無しさん@お腹いっぱい。
18/06/12 19:16:54.17 .net
自作自演
566:名無しさん@お腹いっぱい。
18/06/12 19:18:03.28 .net
いつまでも俺のこと話題にしつづけてくれ! まで読んだ
自意識過剰すぎてきもい
567:名無しさん@お腹いっぱい。
18/06/12 19:21:22.12 .net
>>546
いやあ、本人はそうは思ってなさそうだけど?自己顕示欲は満々みたいだけど
まあ、話題にしている>>513や俺などに対する当てつけ的になら、なんかすまん
568:名無しさん@お腹いっぱい。
18/06/12 19:23:17.23 .net
自作自演2
569:名無しさん@お腹いっぱい。
18/06/12 19:27:22.55 .net
なにか気に触るようだな、繰り返しとはwなにが気に触ってるのかさっぱりだな
570:名無しさん@お腹いっぱい。
18/06/12 19:37:04.17 .net
これ以上そのクソを撒き散らすなら大量のコピペでスレ埋め尽くすぞ
571:名無しさん@お腹いっぱい。
18/06/12 19:39:25.91 .net
問題定義をはっきりせずに、回答に対して一方的にダメ出ししてるから当たり前だろ。
>>521 だって awk や perl の解は >>521 とほぼ同程度の記述量なのに
(GECOS に /bin/bash とか書いてあっても誤動作しないという点ではむしろ優れてる)
「シェルスクリプト以外しらない」とかいう視野の狭さを撤回しないし。
ほぼすべてのプログラマーにとってシェルスクリプトってのは
第二・第三言語であって、シェルスクリプトが最適な用途なら使うけど、
そうじゃない場合があることは当然知ってて、
こんな風
572:に威張って使うものじゃないんだよ。 インフラ担当ならシェルスクリプトが第一言語ってのもありうるけど、 そういう場合にはこんなに威張らないよなあ。
573:名無しさん@お腹いっぱい。
18/06/12 19:40:09.57 .net
なんでやねんっwヤツより悪質/ヤツ以下になってどうするねん
まさかお前(てか、ここ一連の)はヤツじゃないよな?
574:名無しさん@お腹いっぱい。
18/06/12 19:42:22.47 .net
この板ってワッチョイは使えるんだっけ?
次回からいれるか
575:名無しさん@お腹いっぱい。
18/06/12 19:42:45.45 .net
>>551
たぶん、前スレの最初の方で言っていた人のヤツの性質があたり的な
真っ当なやりとりはできなさそうな上に逆に私怨を持ちやすいタイプだから、そういう真っ当なのをちゃんと聞くかどうか怪しいな
576:名無しさん@お腹いっぱい。
18/06/12 21:34:04.16 .net
シェルスクリプトのデバグに関する質問です
eval XXX
というコマンドで実行されるコマンドを確かめるには
evalをechoに置き換えて
echo XXX
とやればいいですかね。
両者の間に、実行されるか表示されるだけかの違い以外の差異はありますか?
例えばある種の展開が行われないとか。
577:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/12 22:40:48.60 .net
>>556
ありがとうございます。
シングルクオートでも展開されるのは盲点でした。
sh -x
のほうが確実ですね……
訊いてよかったです。
579:名無しさん@お腹いっぱい。
18/06/12 22:45:26.76 .net
>>557
ちなみにevalで再評価されてるシェルのメタキャラクタは
シングルクオートじゃなくて $PATH の $ の方ね。
シングルクオートは代入時に字句解釈されるだけで、
$a の中身には残ってないので。
580:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/12 23:41:12.01 .net
な?www
583:名無しさん@お腹いっぱい。
18/06/12 23:43:50.91 .net
な?問題を誤解して的はずれなレスを出すんやで
話にならんわ
584:名無しさん@お腹いっぱい。
18/06/12 23:46:19.16 .net
>>5
585:59 > あれあれ、じゃあこれ↑は、"grep向き" の問題ってことですかね?w 勿論そうだよ。 正規表現で書ける条件だったから、grepでうまくいった。 世の中には正規表現で書けない条件とかも当然あって、そういう場合 perlやawkなら自明にかけるけど、スクリプト言語使わずに シェルだけで書こうとすると面倒だったりする。 > 俺が言ってるシェルスクリプト向きの問題っていうのは > 既存のコマンドの実行と組み合わせが簡単に実行できるってことだよ それに反対してる人は誰もいないと思うよ。 それこそがシェルが特化している応用分野なわけで。 しかし>>521はそれを示す例題としてはよろしくない。 他の言語ならコマンドの組み合わせとかせずに容易に解ける問題だからね。
586:名無しさん@お腹いっぱい。
18/06/12 23:47:07.64 .net
お前に言ってない。さすがだなwwいつもその調子。問題出すのもその調子だからなあw
587:名無しさん@お腹いっぱい。
18/06/12 23:48:09.54 .net
>>563
真面目だなっ!w
ある意味尊敬(馬鹿にはしてない)
588:名無しさん@お腹いっぱい。
18/06/13 00:13:02.23 .net
>>563
お前が問題を理解できなかっただけのこと
>>516
> 今時Python使わないでわざわざシェル使う理由って?
俺はこれ↑に対して、シェルスクリプトの方が適した問題だからって
コマンドをつなげて実行できるのが簡単だと↓以下のように>>518でレスしたわけだが
> pythonであるコマンドを実行して
> それを他のコマンドに流すみたいな
> ことが簡単にできたらね
結局、だから俺が最初から言ってるように、シェルスクリプトの方が
適してるんだろ? ならもうお前口塞げ、混ぜっ返してるだけでなにも役に立ってない
589:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/13 00:23:56.99 .net
なんか変な人が居着いちゃった
591:名無しさん@お腹いっぱい。
18/06/13 00:24:50.12 .net
>>568
前からやで。ずっといついている
ずっと前から俺はいる
592:名無しさん@お腹いっぱい。
18/06/13 01:18:17.08 .net
IDもワッチョイもないからオレオレ言われてもレスの時系列で追えないし面倒だわ
まあキチガイ君がお題の条件だしが決定的に出来ない子なのはよく分かる
>「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
>521読んで道程まで完全に一致させろいう意図だと理解できたやつがいたら天才だわ
普段から人と会話してなさそう
593:名無しさん@お腹いっぱい。
18/06/13 01:27:58.12 .net
>>521
grep /bin/bash </etc/password | cut -d: -f1
594:名無しさん@お腹いっぱい。
18/06/13 01:32:08.64 .net
>>570
>>518を読んでいればわかるだろ
> pythonであるコマンドを実行して
> それを他のコマンドに流すみたいな
> ことが簡単にできたらね
595:名無しさん@お腹いっぱい。
18/06/13 01:38:12.94 .net
普段から人と会話してなさそうが如実
596:名無しさん@お腹いっぱい。
18/06/13 01:40:17.86 .net
そういう悪口しか言えなくなったらおしまい
597:名無しさん@お腹いっぱい。
18/06/13 01:55:40.86 .net
そろそろ名前つけてくれませんかね
598:名無しさん@お腹いっぱい。
18/06/13 02:14:43.53 .net
POSIX shで絶対値をなるべく簡単に扱いたいんだけどいい方法ありますかね
exprコマンドにabsとかがあればよかったんだけども
599:名無しさん@お腹いっぱい。
18/06/13 02:31:02.70 .net
>>571
入力側のリダイレクトって読みにくいので、自分もcatで書くかも
600:名無しさん@お腹いっぱい。
18/06/13 03:18:10.80 .net
>>575
いやでござるwww
>>576
マイナスだけでいいなら
echo ${a#-}
プラスも考慮するなら
echo $((${a#-}))
601:名無しさん@お腹いっぱい。
18/06/13 03:20:58.92 .net
お前じゃないよ自意識過剰
602:名無しさん@お腹いっぱい。
18/06/13 05:05:47.59 .net
>>576
こんなのどうだろう
$(((0 < a)?a:a * -1))
(aに値を代入)
603:名無しさん@お腹いっぱい。
18/06/13 05:23:49.94 .net
なんで俺が短く書いたのに、わざわざ冗長なコード書くかね?
しかも三項演算子を使ってもっと短くかけるし
$(((0 < a)?a:a * -1))
$((a>0?a:-a))
$((${a#-}))
${a#-}
604:名無しさん@お腹いっぱい。
18/06/13 06:09:33.52 .net
>>581
おまえのコードは本質的じゃない
彼が望むのは「絶対値」であって「マイナスを除いたもの」ではない
OK?
分かったらひっこんでろ低能
もしこれに反論があったら「分かってない」ことになるからな?
605:名無しさん@お腹いっぱい。
18/06/13 06:26:16.58 .net
>>582
わかってないのはお前では?
つーか、その反論されたら困るからって
「反論したら俺のかちー」みたいな言い方やめた方がいいよ
恥ずかしいw
俺は反論したから、さあ、次はお前が反論する番だ
606:名無しさん@お腹いっぱい。
18/06/13 06:48:30.93 .net
なんで阿呆が二人に増えるんだよ
607:名無しさん@お腹いっぱい。
18/06/13 08:16:13.42 .net
もう消えろお前ら
このスレに相応しくない
なんだよ最近のこのスレの雰囲気最悪じゃねーか
長文ダラダラ返信長々と最後にレスしたほうが勝ちみたいな古い争いしやがってからに
608:名無しさん@お腹いっぱい。
18/06/13 08:17:03.30 .net
ヒント:一人二役
609:名無しさん@お腹いっぱい。
18/06/13 08:17:43.72 .net
>>577
簡潔に書きたいというお題じゃなかったのか
610:名無しさん@お腹いっぱい。
18/06/13 08:31:11.05 .net
>>577
<をどこに書いてもいいことはあまり知られていない。
</etc/password grep /bin/bash | cut -d: -f1
611:名無しさん@お腹いっぱい。
18/06/13 08:38:00.62 .net
いや読みにくいって話であってだな
612:名無しさん@お腹いっぱい。
18/06/13 08:45:03.32 .net
>>577
そりゃあんたの頭のレベルが低いからだと思うよ
613:名無しさん@お腹いっぱい。
18/06/13 08:58:22.24 .net
>583の脳内では全く論がない噛みつくだけの行為も反「論」になるらしい
これもう日本語が分かってないってレベルじゃないな
ただの小学生だわ
614:名無しさん@お腹いっぱい。
18/06/13 09:13:46.26 .net
小学生なら簡単に構ってちゃんになりそうなのはわかるな。もう構うなw
615:名無しさん@お腹いっぱい。
18/06/13 09:49:23.22 .net
GNU grep なら
$ grep -Po '^.+?(?=:.+:/bin/bash$)' /etc/passwd
616:名無しさん@お腹いっぱい。
18/06/13 09:56:16.86 .net
>>591
論じゃなければ、何か言い返せよって言うだけの話だけど?
ほんと本質じゃないどうでもいい所にしか反応しないのなw
617:名無しさん@お腹いっぱい。
18/06/13 10:00:11.88 .net
さいごにレスしたぼくがしょうりなんだ!
618:名無しさん@お腹いっぱい。
18/06/13 10:17:30.52 .net
>>595
違うと思うぞw
でもあんたはそう思ったから、書き込んだんだよね
619:名無しさん@お腹いっぱい。
18/06/13 10:21:55.43 .net
なんにでもレスするやつ
620:名無しさん@お腹いっぱい。
18/06/13 10:56:37.40 .net
レスしなきゃ負けると信じてるみたいだからしょうがないね
621:名無しさん@お腹いっぱい。
18/06/13 11:34:13.17 .net
$ cat <<. <<.
1AAA
.
2BBB
.
とやると
2BBB
とだけ出力されるんだけど、これどういう理屈か分かる?
標準入力ってヒアドキュメントでさえ上書きされる仕様なの?
622:名無しさん@お腹いっぱい。
18/06/13 11:42:05.35 .net
strace で見ると 2BBB だけ read してるな(1AAA は無視)。
623:名無しさん@お腹いっぱい。
18/06/13 12:01:06.03 .net
>>598
なるほど。だから「さいごに~」とか話に全く関係ないことを言い出したのねw
>>599
ヒアドキュメントって標準入力として読み取るものでしょ?
そこは何らおかしくない
cat < /proc/loadavg < /proc/uptime
ってかいて、/proc/uptime からしか読み込まないのと一緒だと思うよ
624:名無しさん@お腹いっぱい。
18/06/13 12:22:00.85 .net
>>595
0x03e8 ばんさえとれればあなたのしょうりです。
625:名無しさん@お腹いっぱい。
18/06/13 16:23:41.49 .net
>>601
なるほどね
$ somecmd < a.file < b.file
↑これでb.fileしか読み込まれないのも(やったことなかったから)知らなかった。
ありがとう
626:
627:名無しさん@お腹いっぱい。
18/06/13 16:51:47.47 .net
リダイレクトは引数じゃないからね
実質これと同じわけだし
exec </proc/loadavg
exec </proc/uptime
cat
628:名無しさん@お腹いっぱい。
18/06/13 17:56:57.18 .net
>>604
なるほど、納得
629:名無しさん@お腹いっぱい。
18/06/13 18:05:22.98 .net
>>593
を~、grep -oで切り出しできるのね
久々にこのスレで参考になりました
630:名無しさん@お腹いっぱい。
18/06/13 18:44:51.04 .net
なんか嫌らしい感じ
631:名無しさん@お腹いっぱい。
18/06/14 18:54:32.62 .net
コロンを含むディレクトリを$PATHに登録した場合ってどういう挙動になるんだろう
632:名無しさん@お腹いっぱい。
18/06/14 20:11:28.93 .net
コロンがセパレータなのでそこで分かれる
633:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/14 21:25:25.31 .net
macOSだが再現しないなあ
635:名無しさん@お腹いっぱい。
18/06/14 22:13:02.03 .net
FreeBSDは再現しない。
CentOSは再現した。
対策は後で考える。
636:名無しさん@お腹いっぱい。
18/06/14 22:18:48.70 .net
なにか最近やけに POSIX にこだわってる奴が多いが同一人物か?
637:名無しさん@お腹いっぱい。
18/06/14 22:31:37.92 .net
>>613
単純にPOSIXの価値というかシェルスクリプト全体の有用性が見直されているだけでは
たとえば*BSDのスレでGNUライセンスに拘ったレスが連続するのはおかしいが
BSDライセンスを重視するスレがたくさんあっても別におかしくはないだろう
638:名無しさん@お腹いっぱい。
18/06/14 22:32:42.05 .net
パイプでなのでfindとhead が同時にプロセスとして存在
findが標準出力に出力するとパイプを通して/パイプとして繋がってるheadの標準入力に入力として
headが目的を達して終了=パイプが無くなる、だがしかし、findは出力を続けようとし出力しようとしたらパイプが壊れてるうううっ
普通何もしなくても、パイプが損失したらSIGPIPEが飛んできて(強制)終了するんだけど(フィルタとしてもなUNIX的な望ましいデフォルト動作)、なぜかSIGPIPE無視して続けようという謎動作?
findとheadが直接は繋がっていなくてかもしれんが。パイプの送出側がSIGPIPEを無視って謎動作なのは変わらないかな
639:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/14 22:41:30.04 .net
>>616
そのへんが実装によりちょっと違うってとこなのかなあ。出る出ないは
641:名無しさん@お腹いっぱい。
18/06/14 22:48:28.09 .net
>>613
自分側で「なにか違って」動かなかったらめんどくさいってだけじゃないの、単に
642:名無しさん@お腹いっぱい。
18/06/14 22:49:53.08 .net
>>610
643:名無しさん@お腹いっぱい。
18/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
18/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:名無しさん@お腹いっぱい。
18/06/14 22:55:42.54 .net
>>619,620
なーるほどっ
ww
なるほどっ、なっとく
647:名無しさん@お腹いっぱい。
18/06/14 22:57:07.67 .net
>>621
ん? それSIGPIPEは回避できるけど別の問題が発生しない?
「basename: 余分な演算子 XXX」←みたいに怒られるんだが
あと
$ find /etc -exec sh -c 'echo {}' \; | head
↑これをやるとやっぱりSIGPIPEが出されるようだ。
648:名無しさん@お腹いっぱい。
18/06/15 00:01:24.90 .net
>>613
どこかの先生が課題にそう書いてるんだろう。
ちゃんと調べないで持ってくるバカ学生が多いんじゃないの。
649:名無しさん@お腹いっぱい。
18/06/15 00:03:14.56 .net
>>610
>findでexecオプションの引数のあとにシェルに渡すパイプを付けるとexecに渡したコマンドがシグナル13パイプ破壊を出してくるんですけど
この動作は、POSIX的にはどうなの?
まずいというならPOSIX的にどうまずいの?
650:名無しさん@お腹いっぱい。
18/06/15 00:08:14.14 .net
find . -exec basename \{\} \; | { head; cat >/dev/null; }
651:名無しさん@お腹いっぱい。
18/06/15 00:14:45.23 .net
>>626
どういう仕組みなん?
652:名無しさん@お腹いっぱい。
18/06/15 00:39:45.42 .net
-execにこだわりがないのであれば、
find . -print0 | xargs -0 -L 1 basename | head
今度はxargsがお節介メッセージ出すけど、findはheadが終了したら終了する
653:名無しさん@お腹いっぱい。
18/06/15 01:01:37.95 .net
xargs(1)に-0オプションはない(POSIX厨)
654:名無しさん@お腹いっぱい。
18/06/15 02:22:41.09 .net
findにも-print0は無いけどな。BSDにもあるからいいんじゃね
655:名無しさん@お腹いっぱい。
18/06/15 08:25:40.13 .net
find . -print | xargs -n1 basename 2>/dev/null | head
656:名無しさん@お腹いっぱい。
18/06/15 20:58:34.50 .net
execオプションはやめといたほうがいいね
657:名無しさん@お腹いっぱい。
18/06/15 21:35:58.85 .net
元々何が気に入らなかったのかイマイチわからない
658:名無しさん@お腹いっぱい。
18/06/15 22:35:17.99 .net
POSIX的に気に入らない
659:名無しさん@お腹いっぱい。
18/06/15 23:11:38.57 .net
POSIX POSIXうっせー
660:名無しさん@お腹いっぱい。
18/06/15 23:13:05.02 .net
>>634
こういうPOSIXにやたらこだわってるのって
なにかの精神障碍があるんじゃないの?
一度そういう病院で診てもらえ。
661:名無しさん@お腹いっぱい。
18/06/16 00:18:50.65 .net
findutilsのソース取って来てあのメッセージ出ないようにパッチして使っちゃえよもう
URLリンク(git.savannah.gnu.org)
662:名無しさん@お腹いっぱい。
18/06/16 00:33:50.14 .net
>>616
find . -exec sh -c 'trap "exit" pipe; basename {}' \; -o -quit | head
663:名無しさん@お腹いっぱい。
18/06/16 01:07:40.99 .net
>>638
試してないけど、trapせずにbasenameのあとにexitするだけでだめなん?
664:名無しさん@お腹いっぱい。
18/06/16 08:33:03.61 .net
find /etc -exec basename \{\} \; |& head
これでエラーも出ず余計な出力も引っ掛らなかったんだけど
理屈が分からん
|& は標準出力と標準エラー出力両方を通すはずなので
SIGPIPEのエラーが出力されるはずだがgrepしても見当らない
665:名無しさん@お腹いっぱい。
18/06/16 10:03:37.06 .net
find自身がSIGPIPEで終了してんじゃない
実行時間も短くなってるし
666:640
18/06/16 10:31:40.54 .net
>>641
すいません。それどうやって確かめたらいいですかね
667:名無しさん@お腹いっぱい。
18/06/16 10:39:12.35 .net
Linux なら strace で見ると分かる
$ strace -f bash -c 'find /etc -exec basename \{\} \; |& head'
668:名無しさん@お腹いっぱい。
18/06/16 11:10:29.82 .net
stderrが(標準出力)のパイプになりの、そのパイプが無くなり、find自身がエラーメッセージをそれに書き込もうとしてSIGPIPEを受けるってとこか
find . -exec basename {} \; -o -print | head
としても同じように終わるってとこで
669:名無しさん@お腹いっぱい。
18/06/16 12:55:30.00 .net
>>644
ほほう
670:名無しさん@お腹いっぱい。
18/06/16 13:02:42.26 .net
>>640
だれかこれをmacOSでやってくれない?
あれは確かSIGPIPEを受けとらないから
GNU findと違ってこの書き方だと不具合が起こりそうだ
671:名無しさん@お腹いっぱい。
18/06/16 13:15:44.53 .net
>>646
>あれは確かSIGPIPEを受けとらない
いや、それはないだろう。単に>>621の違いじゃないの
macOS Sierra標準のbashはまだ |& をサポートしてないヤツみたいなので(??)、2>&1 | としたが同じくfindは終わる
672:名無しさん@お腹いっぱい。
18/06/16 13:16:47.78 .net
>>647
× >>621
○ >>620
673:名無しさん@お腹いっぱい。
18/06/16 13:26:10.67 .net
ああ、|& は元々はzshのなのか(?)
macOS Sierra標準のzshでは/でも、>>640のままで特に何も問題なく終わった
674:名無しさん@お腹いっぱい。
18/06/16 14:10:29.68 .net
>>649
|&はcsh由来。zshはパクっただけ。
675:名無しさん@お腹いっぱい。
18/06/16 17:20:45.43 .net
|&はPOSIXなの?
676:名無しさん@お腹いっぱい。
18/06/16 17:32:28.45 .net
やかましいわっw、おばかさん
677:名無しさん@お腹いっぱい。
18/06/16 17:58:54.17 .net
それはPOSIXですか?POSIXじゃないのですか?
678:名無しさん@お腹いっぱい。
18/06/16 18:00:34.28 .net
ところで俺のPOSIXを見てくれ。こいつをどう思う?
679:名無しさん@お腹いっぱい。
18/06/16 18:14:03.11 .net
すごく、標準的です
680:名無しさん@お腹いっぱい。
18/06/16 18:39:24.01 .net
Is it POSIX?
681:名無しさん@お腹いっぱい。
18/06/16 18:58:44.20 .net
No, it is Apple
682:名無しさん@お腹いっぱい。
18/06/16 19:58:16.75 .net
まあPOSIXじゃないので質問者の要請は満たしてないよね
俺が提案するとしたらexecは使わず
find . | xargs -I @ basename @ | head
↑これ。
683:名無しさん@お腹いっぱい。
18/06/16 20:06:12.48 .net
それじゃあかんだろ。xargsのオプションが足りない
684:名無しさん@お腹いっぱい。
18/06/16 20:09:55.36 .net
いいのか。すまん
685:名無しさん@お腹いっぱい。
18/06/16 20:37:42.14 .net
俺がやるなら xargs -I には {} を 指定するがな
@というのは見たことがない 社内規約かなにかかな?
686:名無しさん@お腹いっぱい。
18/06/16 20:51:48.06 .net
>>656-657
定冠詞がないよ
687:名無しさん@お腹いっぱい。
18/06/16 20:56:44.95 .net
この問題って本質的には、 find は /etc の下の全部のファイル(10以上)を返すが、
head は 10行で打ち切ってしまうという矛盾にある。
そこは目をつぶるって方針なんだから、最初に書いてあったstderrを捨てるって
方法で正しいと思うよ
688:名無しさん@お腹いっぱい。
18/06/16 20:59:20.95 .net
>>658
xargs: basename: terminated by signal 13 って表示されちゃう
>>661
俺は @ しか使ったことがない
689:名無しさん@お腹いっぱい。
18/06/16 21:30:02.51 .net
>>662
バッカこれはどっちも形容詞だよ
だからネタとして成立してんじゃん
690:名無しさん@お腹いっぱい。
18/06/16 22:02:52.02 .net
>>662
マジレスアッポー
691:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/16 23:24:18.70 .net
basenameにしたらファイル名じゃなくなるじゃん
693:名無しさん@お腹いっぱい。
18/06/16 23:36:17.54 .net
>>668
?
もしかして-type fが見えてないだけ?
694:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/17 08:19:10.40 .net
できればsedでやりたいことなんですが
aaa
<<
bbb
>>
もしくは
aaa
<<bbb>>
�
696:ニいうようなファイルがあったとしてaaaの次行から「>>」を含む行までを読み出したいです。 (aaaが存在する行はすでに具体的な数値で判明しています; ここでは42行目とします) 特に二番目の場合には sed -n -e '43,/>>/p'とやると43行目に「>>」があるのに見つけてくれません。 なにか手助けをおねがいします。
697:名無しさん@お腹いっぱい。
18/06/17 09:24:18.61 .net
>>671
sed -e '42,/>>/!d' -e 42d
698:名無しさん@お腹いっぱい。
18/06/17 12:39:57.71 .net
あれんじ
sed -e '43,$!d;/>>/q'
699:名無しさん@お腹いっぱい。
18/06/17 14:39:23.57 .net
標準規約に従いましょう
GNU Coding Standards
URLリンク(www.gnu.org)
700:名無しさん@お腹いっぱい。
18/06/17 14:43:41.30 .net
言いたいことがわからない
701:名無しさん@お腹いっぱい。
18/06/17 16:46:05.17 .net
言っても無駄なんだろうが、そんなファイルを処理しようってのが間違ってると思う
702:名無しさん@お腹いっぱい。
18/06/17 19:18:43.97 .net
>>676
処理したい時はどうすればいいですかね。
703:名無しさん@お腹いっぱい。
18/06/17 19:23:59.83 .net
POSIXで。
704:名無しさん@お腹いっぱい。
18/06/17 19:24:04.76 .net
Windowsだと%TEMP%で一時ファイルの格納場所が指定できますがUnixではそういう環境変数はないのですか?
$TEMPとか
705:名無しさん@お腹いっぱい。
18/06/17 19:27:47.07 .net
>>669
basenameって拡張子消えるよね?
706:名無しさん@お腹いっぱい。
18/06/17 19:28:33.83 .net
>>679
誰に対して使用して欲しいのか分からないな
707:名無しさん@お腹いっぱい。
18/06/17 19:40:16.19 .net
>>680
消せと言えばね
708:名無しさん@お腹いっぱい。
18/06/17 19:43:21.15 .net
>>679
TMPDIR
かな
/tmp
が古からあるからな。TMPDIRが設定されていたら(OSとして初期設定されているか、なんらかの形でTMPDIR設定されてたら)TMPDIR。設定されてなかったら普通に /tmp かな
709:名無しさん@お腹いっぱい。
18/06/17 19:45:54.91 .net
>>679,683
>TMPDIRが設定されていたら~
って、TMPDIRを意識していればね。当然のように、んなの知らん、/tmp 一択ってのも普通にある
710:名無しさん@お腹いっぱい。
18/06/17 20:07:00.69 .net
>>681
一応、TMPDIRはPOSIX標準環境変数らしい。 tmpfile(3)やmkstem(3)なんぞはPOSIXとしてはTMPDIRを参照しろとはなってないらしい
が、実装するならTMPDIR参照するだろうし、してる。ちゃんとtmpfile(3)やmkstem(3)やmktemp(1)などを使っていれば、誰でもなんだろうけどね
711:名無しさん@お腹いっぱい。
18/06/17 20:58:57.79 .net
>>685
それってPOSIX shellの話なの?
712:名無しさん@お腹いっぱい。
18/06/17 21:18:57.03 .net
シェルじゃなくてシステム
713:名無しさん@お腹いっぱい。
18/06/17 21:19:01.81 .net
>>686
何を聞いてるのかわからん
714:名無しさん@お腹いっぱい。
18/06/17 21:19:45.24 .net
俺…POSIXだったのか…?
715:名無しさん@お腹いっぱい。
18/06/17 21:59:03.03 .net
関数のなかってalias使えないっぽいね
somefnc() {
alias AAA='pwd'
AAA
}
# → AAA: command not found
716:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/18 03:35:59.29 .net
自己レス
evalで出来ました
719:名無しさん@お腹いっぱい。
18/06/18 07:01:
720:47.43 .net
721:名無しさん@お腹いっぱい。
18/06/18 07:11:33.65 .net
ちなみにこれだとうまくいく
somefnc() {
alias AAA='pwd'
eval AAA
}
evalは実行する段階でalias展開されるようだ
evalで実行する文は、実行段階ならないと
わからないのだから当然ではあるが
722:名無しさん@お腹いっぱい。
18/06/18 08:15:26.93 .net
>>695
すげぇ!ありがとう
ちなみに今さっきの地震に伴う停電のせいでパソコンがおしゃかになったっぽいので
試せないw
723:名無しさん@お腹いっぱい。
18/06/18 09:27:00.32 .net
なるほど。大阪だけにおしゃかになったわけだな
724:名無しさん@お腹いっぱい。
18/06/18 09:36:50.09 .net
は?
725:名無しさん@お腹いっぱい。
18/06/18 09:40:49.35 .net
うちの研究室もすごいことになった。
ところで前々から関数のなかで alias が展開されないのを歯痒くおもっていたので
eval 使えばいいというのは非常に有益な Tips だわ。
726:名無しさん@お腹いっぱい。
18/06/18 10:09:39.01 .net
あまりにもPOSIX、POSIXしつこいから、POSIXでNGにしたったわ
727:名無しさん@お腹いっぱい。
18/06/18 10:13:14.51 .net
PSOIXでいこう
728:名無しさん@お腹いっぱい。
18/06/18 10:15:28.33 .net
P0SIX(いやがらせ)
729:名無しさん@お腹いっぱい。
18/06/18 10:20:36.56 .net
P051X
730:名無しさん@お腹いっぱい。
18/06/18 10:23:39.71 .net
ぽじっくす
731:名無しさん@お腹いっぱい。
18/06/18 17:53:22.33 .net
>>699
makefile とか crontab でもエイリアス無視だけど
evalならいけるのかな
試してみよう
732:名無しさん@お腹いっぱい。
18/06/18 20:47:12.93 .net
URLリンク(oldcar-purchase.com)
733:名無しさん@お腹いっぱい。
18/06/19 04:10:29.03 .net
関数の中、もしくはmakefileやcrontabで
aliasを使いたい状況っていうのがよくわからないが
どんなときに使うの?
aliasではなく変数とかじゃ駄目なの?
734:名無しさん@お腹いっぱい。
18/06/19 04:54:42.99 .net
自分は引数を取らず固定されたフィルタはaliasで定義することにしている
例えばeraelコマンド(ERAce Empty Line)。
alias erael='sed -e "/^$/d"'
ただ大抵はシェルスクリプトの先頭に記述するのであなたの言う通り関数の中で宣言する意図は分からん。
735:名無しさん@お腹いっぱい。
18/06/19 05:16:14.31 .net
つづりeraseやで
736:名無しさん@お腹いっぱい。
18/06/19 05:53:06.78 .net
>>708
使い方としてはわかったけど、
ぶっちゃけそれだって関数作ればいいだけなんだよなぁ
erase() { sed -e "/^$/d" "$@"; }
737:名無しさん@お腹いっぱい。
18/06/19 06:00:33.38 .net
>>710
いやそうなんだけど
「引数を取らず固定されたフィルタ」
↑これを実現するのに関数は大仰な気がしてきてな。
738:名無しさん@お腹いっぱい。
18/06/19 06:15:17.17 .net
関数とエイリアスの使い分けに意味はあるの?
使用メモリ?性能?
739:名無しさん@お腹いっぱい。
18/06/19 06:31:47.07 .net
>>712
いやまったく大差ない。
ただただaliasというだけ
分かってると思うが俺は別に「使え!」なんて言ってないから
そんな気にする必要ないぜ。
個人的な問題だから。
740:名無しさん@お腹いっぱい。
18/06/19 07:04:14.39 .net
みんな知ってるかい?
関数の中で関数を定義できるってことを
foo() {
bar() {
echo bar
}
}
foo
bar
741:名無しさん@お腹いっぱい。
18/06/19 07:22:52.49 .net
全角字下げやめてくれ
コピペで試せん
742:名無しさん@お腹いっぱい。
18/06/19 07:27:20.24 .net
foo() {
bar() {
echo bar
}
}
foo
bar
743:名無しさん@お腹いっぱい。
18/06/19 08:03:40.13 .net
5chに貼られたソースコードをコピペするってwセキュリティ意識ゼロかよw
絶対こんなの相手に発注したく�
744:ヒぇww
745:名無しさん@お腹いっぱい。
18/06/19 13:37:44.18 .net
アクalias飲みてぇ
746:名無しさん@お腹いっぱい。
18/06/19 18:46:56.46 .net
>>717
たかが数行のソースが危険かどうかもわからん奴には発注したくないな
747:名無しさん@お腹いっぱい。
18/06/20 02:21:04.28 .net
somefunc() {
echo "${1:='need a arg'}"
}
のような関数を作ったのですが引数なしで起動すると
-bash: $1: この方法で割当はできません
と怒られるのですがどうすればいいですかね。
748:名無しさん@お腹いっぱい。
18/06/20 03:20:33.94 .net
somefunc() {
arg="$1"
echo "${arg:='need a arg'}"
}
749:名無しさん@お腹いっぱい。
18/06/20 03:34:23.66 .net
>>721
ありがとうございます!
できました!
すいませんが、もしよければなぜ直接引数に:=変数置換を適用できないのか教えていただけないでしょうか。
例えば${1:-aaa}などはごく普通にできるので、不思議です。
750:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/20 06:53:00.27 .net
すべての言語で引数に対する代入は禁止されればいいのに
752:名無しさん@お腹いっぱい。
18/06/20 07:57:59.37 .net
引数に代入できる言語って例えば?
753:名無しさん@お腹いっぱい。
18/06/20 08:43:18.41 .net
ば…bat
754:名無しさん@お腹いっぱい。
18/06/20 10:20:31.09 .net
それ言語?
755:名無しさん@お腹いっぱい。
18/06/20 11:38:13.87 .net
Cだとargvは一度どこかに書き出さないと置換とか操作できないよね。
756:名無しさん@お腹いっぱい。
18/06/20 12:45:30.95 .net
>>728
別に直接書き換えもできる。constを「自分で」付ければできないようにもできるけど
Cで書き換えるのは危険すぎるだけだな。配列/文字列等のメモリ境界保護なんてないから。OSによってはargvがメモリ保護域にあるのもあるだろけど
757:名無しさん@お腹いっぱい。
18/06/20 12:48:49.26 .net
>>728
argv の指す先は変更できないけど argv 自体は変更し放題
758:名無しさん@お腹いっぱい。
18/06/20 12:56:35.45 .net
>>730
argvの指す先(char **argv/*argv[]の中身/値でいいの?)も変更できるよ
argv = myArgv;
argv[1] = myArg;
argv[1][0] = myChar;
どれもできる
759:名無しさん@お腹いっぱい。
18/06/20 15:25:21.41 .net
ああそうか。728だけど,すごいまぬけな発言をしてたわ。
Cでのargvはあくまで約束事としての変数名だからなんの保護・制約も掛けられてないのか。
一方シェルスクリプトでは引数変数を明確に他と区別できるようになってる。
ただし半保護状態。
760:名無しさん@お腹いっぱい。
18/06/21 05:57:06.66 .net
script(1)コマンドかそれと似たCLI記録ツールで、
~/.profile(←ここに~/.bashrcなどを読みこむコマンドが書いてある)を読み込ませたいのですがどうすればいいですかね。
761:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/21 08:42:01.32 .net
>>733
surce ~/.profile ではだめなの?
763:名無しさん@お腹いっぱい。
18/06/21 09:33:47.42 .net
✕ surce
△ source
◯ .
764:名無しさん@お腹いっぱい。
18/06/21 09:34:32.68 .net
1行目は×な。
765:名無しさん@お腹いっぱい。
18/06/21 09:45:45.51 .net
bashの場合、インタラクティブでログインシェルでなければ.bashrcを読むはずだけど、それじゃ足らんの?
766:名無しさん@お腹いっぱい。
18/06/21 15:08:24.51 .net
>>734
ありがとうございます!
できました!
767:名無しさん@お腹いっぱい。
18/06/21 15:25:56.39 .net
733です。すいません。もうひとつ訊きたいことがあるのですが
script(1)実行中はCO
768:LUMNS=80,LINES=25に固定したいです。 しかしそのmyshに export COLUMNS=80 などと記述しても反映されません。 ~/.profileなどでは特にCOLUMNSの値を設定している訳ではないです。 これどうすればいいですかね
769:名無しさん@お腹いっぱい。
18/06/21 17:29:46.87 .net
stty cols 80 rows 25
なんかLINESもってとこから、ターミナルのウィンドウサイズなんぞもってぽいけど、それは個々のターミナルアプリ次第&一方通行っぽい(COLUMNSの値を設定している訳ではないのはそゆこと)けど
770:名無しさん@お腹いっぱい。
18/06/22 07:10:56.19 .net
シェルスクリプトってeval使えばメタプログラミングっぽいことできるよね。
例えば引数をfor文で増加さしてeval arg$i=\$$iみたいな。
771:名無しさん@お腹いっぱい。
18/06/22 08:39:33.18 .net
>>742
evalはインタープリタそのものだからね
772:名無しさん@お腹いっぱい。
18/06/22 08:56:09.19 .net
evalは一番最初に現れたプリミティブなメタプログラミング機能だからまあ当然だな。
ちな最初にeval を発明した言語はLisp な。
773:名無しさん@お腹いっぱい。
18/06/22 15:33:32.30 .net
eval is evilを発明したのはLISPか
774:名無しさん@お腹いっぱい。
18/06/23 05:10:08.14 .net
eval is evilはJSでは
775:名無しさん@お腹いっぱい。
18/06/23 10:04:22.34 .net
evalは強力すぎて危険だからどの言語でも濫用はevil扱いだと思う。
REPLみたいにevalがぴったりした応用もあるから禁止はできんし、
シェルスクリプトは比較的ミニマムな言語だからevalしか解がないケースも多いけど。
776:名無しさん@お腹いっぱい。
18/06/23 11:22:58.87 .net
「ミニマルな言語」って他には例えばなに?
それLLとはまた違うの?
いや煽ってるんではなくて単純に訊ねたい。
777:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/23 13:19:07.15 .net
ミニマムはすき
779:名無しさん@お腹いっぱい。
18/06/23 14:46:23.27 .net
eval関連なんですがaliasの出力結果をevalする方法を教えてください。
具体的にはroot権限でlsがしたいのですが、その時通常のlsと同じオプションを付けて実行したいのです。
ですので(通常の状態での)alias lsの結果を変数かなにかに格納してそれを実行しようと思ったのですが良い方法が思い付きません。
そのコマンド自体もaliasにしたい(具体的にはls@rootコマンドとしてalias ls@root=の形で定義したい)です。
どうかよろしくお願いします。
780:752
18/06/23 14:52:25.95 .net
すいません。一番上の行は無視してください。
evalでできるかなと考えてたプロセスが漏れてしまっただけです。
多分このアプローチは間違っているので無視してください。
781:名無しさん@お腹いっぱい。
18/06/23 19:13:35.47 .net
>>750
偽物臭強いけどなw
ただ身長が小さいだけじゃないかっつー
本物双子のやつは結構好き
782:名無しさん@お腹いっぱい。
18/06/23 19:18:52.33 .net
>>751
普通にぐぐれ
783:名無しさん@お腹いっぱい。
18/06/24 00:39:25.04 .net
>>751
aliasでなくてsudo使って関数定義するのがいいと思うけどだめなの?
784:名無しさん@お腹いっぱい。
18/06/24 07:01:44.49 .net
LS=`alias ls`
じゃだめなの?
785:名無しさん@お腹いっぱい。
18/06/24 09:15:58.74 .net
>>753
詳しく
786:名無しさん@お腹いっぱい。
18/06/24 10:16:34.78 .net
/tmpでいいじゃん
787:名無しさん@お腹いっぱい。
18/06/24 22:14:10.69 .net
>>748
データ型が少ないって意味でTclとかかな。
でもTclには文字列型の他に連想配列があるのよね。
POSIX shellの範囲内だと引数配列を除けばホントに文字列しかないので。
788:名無しさん@お腹いっぱい。
18/06/26 16:44:06.12 .net
�
789:アんにちは ド素人です。 VPSの立ち上げ時にスタートアップシェルスクリプトを使って効率化したいです。 とあるwgetを叩くと、user名とパスワード、パスワードの再入力を求められるのですが、 このuser名、パスワードをシェルスクリプトで入力させるにはどうしたらよいでしょうか。
790:名無しさん@お腹いっぱい。
18/06/26 17:04:46.28 .net
wgetでgithub上にある既存のシェルスクリプトを叩くと
ユーザー名とパスワードを聞かれるのですが、
その入力を自動化したいという意味です。
github上のシェルスクリプトは変更できません・・・
791:名無しさん@お腹いっぱい。
18/06/26 17:16:35.68 .net
wgetでシェルスクリプト叩くてどういう意味?
出力をシェルに流し込むって事?
792:名無しさん@お腹いっぱい。
18/06/26 17:25:22.13 .net
なんかパスワード 自動入力 あたりでggったらすぐ出てきそうやな
793:名無しさん@お腹いっぱい。
18/06/26 17:29:12.30 .net
>>761
相手側の要求に従ったuser名パスワードの提供方法をwgetでするとよいでしょう
どのVPS?どういう相手側のサービス?その使ったというはGitHubのどれ?
URLリンク(gist.github.com)
これでいいのか?適当にぐぐったらVPSだしwget使ってるしw
>>762
まあ、なんかセットアップでコマンド叩いたりするのだろう。そういえばwgetで認証できなかったら再入力なんて求められないよな...??あったかな??
794:名無しさん@お腹いっぱい。
18/06/26 17:55:18.59 .net
wgetは--userと--passwordでユーザー名とパスワードを指定できるはずだけど
795:名無しさん@お腹いっぱい。
18/06/26 18:04:40.17 .net
httpのBASIC認証やftpのならそれで問題はないよね。普通にBASIC認証でそのオプションを教えてっていうことだけかな
796:名無しさん@お腹いっぱい。
18/06/26 18:12:51.93 .net
manくらい嫁カス案件
797:名無しさん@お腹いっぱい。
18/06/26 19:26:12.11 .net
wgetが書かれたシェルスクリプトを呼び出すシェルスクリプトを書きたいように見えるが…
まあ質問が日本語的に不自由すぎるね
798:名無しさん@お腹いっぱい。
18/06/26 20:51:22.89 .net
wgetがBASIC認証を要求してくるんですが、
パスワードをシェルスクリプトに書きたくないです。
別ファイルに生パスワードを書くのも嫌です。
かといって毎回入力するのは面倒です。
ssh-agent利用して最初に一回いれて覚えさせるだけで
あとはパスワードなしにできたりしないですかね?
799:名無しさん@お腹いっぱい。
18/06/26 21:11:05.80 .net
ssh-agent/ssh-keychainはどうなんだろ、無理じゃねと思うが、keyring(Linux/BSD)/Keychain Access(macOS)を使えばふつーにできるだろうな
800:名無しさん@お腹いっぱい。
18/06/26 21:17:58.64 .net
最初の質問と内容か変わってるし、パスワード書きたくないらしいので、役にたたないだろうけど、俺ならexpectでスクリプト書く
801:名無しさん@お腹いっぱい。
18/06/26 21:25:16.46 .net
最初の質問者と別人じゃね?レスの書き方から同一人物にも見えるけどw
802:名無しさん@お腹いっぱい。
18/06/26 22:26:52.66 .net
まあなんか知らんがもっとドキュメントに当たったらって気がする
803:名無しさん@お腹いっぱい。
18/06/27 00:54:07.84 .net
jqについて教えてください。
URLリンク(ideone.com)
やり方が分からないので、以下のようにとりあえすyenを指定したら並び順が思ったようになりませんでした。
$ cat kudamono.json | jq -r '.genre_name, .list[].name, .list[].hinshu_list[].yen'
くだもの
りんご
みかん
いちご
180
500
200
50
63
300
null
null
null
続く
804:名無しさん@お腹いっぱい。
18/06/27 00:54:30.18 .net
以下のように標準出力に出す方法を教えてください。
くだもの
りんご
ふじ
180
サンふじ
500
つがる
200
みかん
きんかん
50
いよかん
63
せとみ
300
いちご
あまおう
null
ひのしずく
null
とちおとめ
null
805:名無しさん@お腹いっぱい。
18/06/27 01:36:22.49 .net
>>772
別の人ですよー。�
806:竄閧スいことを思い出したので、書いてみたの♪
807:名無しさん@お腹いっぱい。
18/06/27 03:13:21.88 .net
>>774-775
. | .genre_name, (.list[] | .name, (.hinshu_list[] | .hinshu, .yen))
URLリンク(stedolan.github.io) URLリンク(stedolan.github.io) 見つつ URLリンク(jqplay.org) で試した
jq初めての俺でもすぐできたじゃねーか
まじめにやれ
808:名無しさん@お腹いっぱい。
18/06/27 07:24:03.91 .net
>>777
どうもありがとうございます!
カッコを使うといいんですね
809:名無しさん@お腹いっぱい。
18/06/28 16:24:57.87 .net
dashで動くシェルスクリプトってPOSIX準拠のシェルスクリプトだと思って問題ない?
810:名無しさん@お腹いっぱい。
18/06/28 17:11:46.11 .net
そいつから呼ぶコマンドもPOSIXじゃないとな。
811:名無しさん@お腹いっぱい。
18/06/29 00:29:23.70 .net
dashはPOSIX準拠である
だからPOSIX準拠のコードはdashで期待どおり動く
だけどdash専用のコードはPOSIX準拠ではない
812:名無しさん@お腹いっぱい。
18/06/29 01:00:02.18 .net
kshのposixモードがかな。POSIX仕様の元となった自負があるだろうからposixモードもちゃんとしてそう
813:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/06/30 22:52:18.06 .net
a=値
echo "(1-s($a)^2)/2^$a" | bc -l
とか?
815:名無しさん@お腹いっぱい。
18/07/01 20:12:26.02 .net
cat <<. | xargs -I @ echo (1-s(@)^2)/2^@ | bc -l
3
44
-6
.
こんなのでどう?
816:名無しさん@お腹いっぱい。
18/07/02 14:00:06.28 .net
cat と echo と print の違いが分からない
あと、print と printfの違いも
教えて
817:名無しさん@お腹いっぱい。
18/07/02 14:00:38.56 .net
less と moreも
818:名無しさん@お腹いっぱい。
18/07/02 14:07:32.55 .net
manすりゃいいんじゃないの
819:名無しさん@お腹いっぱい。
18/07/02 14:15:59.23 .net
cat と echo,printf は全然違う。主に出力するソースが(ゆえにパイプで入力受ける受けないとなり?)
echo と printf は、書式が指定できるかというか、コマンド由来とC由来かな
printって?awk内のならprintはechoのようなもんかな(Ubuntuには print がコマンドであるけど Mailcap とかナニそれな普通じゃないのだな)
820:名無しさん@お腹いっぱい。
18/07/02 14:19:26.23 .net
ググったらechoは改行されてしまうけどprintfは自分で\nしないと改行されないってあった
821:名無しさん@お腹いっぱい。
18/07/02 14:23:46.00 .net
それらの違いが分からないのは使ってないからだろ
使ってないなら知る必要もないし知ろうとも思わない
自作自演かな?
822:名無しさん@お腹いっぱい。
18/07/02 14:26:27.85 .net
>>791
宿題
823:名無しさん@お腹いっぱい。
18/07/02 14:27:23.78 .net
コマンド由来とC由来ゆうてるやんw
printf(1) は printf(3) と同じと思えば不思議ではないだろう。echo も -n で改行しないようにもできるけどイレギュラー、コマンド由来だからな
>>791
まあ、なんの目的で聞いてるのかさっぱりわからんくはあるな。なんの自作自演なのかさっぱりだけど
824:名無しさん@お腹いっぱい。
18/07/02 14:27:58.46 .net
>>792
宿題かああ。程度が低いな。高校でとかか?
825:名無しさん@お腹いっぱい。
18/07/02 14:28:13.36 .net
>>792
あぁ…
826:名無しさん@お腹いっぱい。
18/07/02 14:39:06.49 .net
>コマンド由来
コマンドはつねに改行されるの?
827:名無しさん@お腹いっぱい。
18/07/02 14:40:31.96 .net
あと、printfのfって何?
f付けたのはcが最初?
fって?
828:名無しさん@お腹いっぱい。
18/07/02 14:44:50.94 .net
少しは自分で調べろよ
829:名無しさん@お腹いっぱい。
18/07/02 14:47:13.07 .net
調べたから改行の事分かったんだけど?
830:名無しさん@お腹いっぱい。
18/07/02 14:47:50.56 .net
もっと自分で調べろよ
831:名無しさん@お腹いっぱい。
18/07/02 14:49:35.35 .net
じゃぁfだけヒント教えて
832:名無しさん@お腹いっぱい。
18/07/02 14:50:22.47 .net
それな
833:名無しさん@お腹いっぱい。
18/07/02 14:50:43.52 .net
>>796,797
コマンドで何か出力するのに「改行しない」方が少ないだろうという。echo "Hello"が改行しなかったら
834:プロンプトが続いてとか。改行した方がその機会が多いので省けるだろう f = フォーマット。printfはCが起源じゃないのかなあ。の前の何かの言語ではprintがあっただろうな(どういうのか知らんけど) 聞く姿勢が小学生低学年並みだな。そろそろ>>798の言うとおり
835:名無しさん@お腹いっぱい。
18/07/02 14:55:17.35 .net
>>803
どうもありがとうございました
836:名無しさん@お腹いっぱい。
18/07/02 15:22:33.69 .net
礼儀正しいな
少し見直したw
837:名無しさん@お腹いっぱい。
18/07/02 15:24:56.72 .net
manとinfoどっち使ってる?
infoは文中から別のページに飛べるから便利そうだけどウェブブラウザのように戻る進むボタンがあるわけでも無いし全部文字だけだから現在位置が分からなくなるからmanがいいと思うんだけどどう?
838:名無しさん@お腹いっぱい。
18/07/02 15:25:43.12 .net
なんか最近ほんとこういうアンケートみたいなの増えたな
どっかから流れてきたか?
839:名無しさん@お腹いっぱい。
18/07/02 15:27:19.76 .net
この質問は乾燥機かせてほしいだけだから
840:名無しさん@お腹いっぱい。
18/07/02 15:29:11.19 .net
UNIX板だからmanだな
841:名無しさん@お腹いっぱい。
18/07/02 15:31:13.31 .net
何を乾燥させたいのかしばらく悩んだ
842:名無しさん@お腹いっぱい。
18/07/02 18:41:01.45 .net
「乾燥機貸して」ってアンジャッシュのネタにあったなそういや
843:名無しさん@お腹いっぱい。
18/07/02 19:09:02.32 .net
man manて口で言うと恥ずかしいからinfo
844:名無しさん@お腹いっぱい。
18/07/02 19:35:17.38 .net
rcsのco(1)を
845:名無しさん@お腹いっぱい。
18/07/02 21:56:08.50 .net
tinfo
846:名無しさん@お腹いっぱい。
18/07/02 22:32:14.11 .net
そのあたりのネタはもう聞き飽きた
847:名無しさん@お腹いっぱい。
18/07/03 00:21:24.80 .net
ディレクトリの中の拡張子がm2tsのファイル全てをtsselectというコマンドに投げてその標準出力をひとつのファイルに追記で書き込みたいんですが、その際、ファイル名も一緒に書き込みたいです。
どうやってファイル名を取得するんでしょうか?
$ tsselect *.m2ts > ana.log
848:名無しさん@お腹いっぱい。
18/07/03 00:43:49.80 .net
1行で書けなかったので、複数行に分けてfor分を使いました。
849:名無しさん@お腹いっぱい。
18/07/03 01:01:05.23 .net
こんなん?
for i in *.m2ts; do echo $i >>ana.log; tsselect $i >>ana.log; done
850:名無しさん@お腹いっぱい。
18/07/04 07:39:11.34 .net
近頃のどこか(このスレかも)で,
「fgrepはgrepより遅い」というような話を耳にしたんですが,ほんとうですか?
手元のgrepで試したところ,ほとんど有意な差はありませんでしたが……。
851:名無しさん@お腹いっぱい。
18/07/04 08:10:45.64 .net
それぞれ独自バイナリだった昔の話な。
あとgrepよりegrepの方が速かったんで、
今でも手はegrepを優先して打っちゃうけどな。
852:名無しさん@お腹いっぱい。
18/07/04 08:43:22.98 .net
いや独自バイナリだった頃もfgrepの方が速かったような。
grepだけ非決定性オートマトンで遅い的な。
853:名無しさん@お腹いっぱい。
18/07/04 15:23:44.48 .net
ファイルの一括リネームで
$ find . -name "*X*" | while read F; do mv $F ${F/X/Y}; done
だとXXXがYXXになるんですけどYYYにするには繰り返さなきゃいけないんですかね?
854:名無しさん@お腹いっぱい。
18/07/04 16:18:50.48 .net
If pattern begins with /, all matches of pattern are replaced with string.
855:名無しさん@お腹いっぱい。
18/07/04 16:22:26.78 .net
日本語で書いてくれないとわかりません
できれば修正したコマンドを書いてください
856:名無しさん@お腹いっぱい。
18/07/04 16:25:40.84 .net
お断りします
857:名無しさん@お腹いっぱい。
18/07/04 16:27:15.37 .net
断る理由とは?
858:名無しさん@お腹いっぱい。
18/07/04 16:29:57.71 .net
ひな鳥に餌を上げるのはひな鳥がかわいいからだ
なんかこのひな鳥うざいって思ったら餌は与えない
859:名無しさん@お腹いっぱい。
18/07/04 16:31:49.67 .net
可愛く思われる質問の仕方でもあったんですかね
860:名無しさん@お腹いっぱい。
18/07/04 16:34:15.63 .net
とりあえず「sh 変数展開」あたりでggってからここに来
861:い それで分からなきゃどこかの暇人が餌与えてくれるまでずっと待ってな
862:名無しさん@お腹いっぱい。
18/07/04 16:35:48.08 .net
ありがとうございました
863:名無しさん@お腹いっぱい。
18/07/04 16:54:10.40 .net
もう来んなよ
864:名無しさん@お腹いっぱい。
18/07/04 18:24:31.29 .net
すみません
ワードとかに出来る~$で始まるファイルを一括で消したいのですがどうすればいいですか。
find ./ -name "~$*" -exec rm -rf {} \;
これだと上手くいかないです。
find ./ -name "~\$*" -exec rm -rf {} \;
エスケープしてもダメです。
find ./ -name "~*" -exec rm -rf {} \;
これだと上手くいきますが$も指定するためにはどうすればいいですか。
865:名無しさん@お腹いっぱい。
18/07/04 18:27:42.16 .net
シングルクォート使っとけばぁ
866:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/07/04 18:41:11.43 .net
自己解決
bashにしたら\で普通にエスケープできました
find . -name "~\$*"
なんでcsh使ってたんだろ
868:名無しさん@お腹いっぱい。
18/07/04 18:44:18.71 .net
csh使ってたならプロンプト$にすんなよ紛らわしい
869:名無しさん@お腹いっぱい。
18/07/04 18:46:56.81 .net
cshだと%でしたねすみません
% find . -name "~\$*"
870:名無しさん@お腹いっぱい。
18/07/04 20:48:13.14 .net
なんで-rつけてんねん
871:名無しさん@お腹いっぱい。
18/07/04 20:56:00.21 .net
ファイルフォルダ関係なく消したいからフォルダがないとわかっていても付けてる
872:名無しさん@お腹いっぱい。
18/07/04 21:12:02.88 .net
\; より + かな。forkの遅いCygwinでは特に。
873:名無しさん@お腹いっぱい。
18/07/04 21:21:14.22 .net
最後以外の改行を削除する単純で可搬な方法を探しています。
私が現在使っている方法は
cat <<. | tr -d '\n' | printf '%s\n' "$(cat)"
a
bbb
cc
.
です。これは可搬性は抜群ですが、冗長すぎると感じています。
できれば一つのコマンド(sedとか?)で済ませたいです。よろしくお願いします。
874:名無しさん@お腹いっぱい。
18/07/04 21:32:09.95 .net
awkで
875:名無しさん@お腹いっぱい。
18/07/04 21:34:23.01 .net
フォルダっつーかディレクトリ
876:名無しさん@お腹いっぱい。
18/07/04 21:37:25.99 .net
同じだろ
877:名無しさん@お腹いっぱい。
18/07/04 21:40:52.56 .net
>>841
sed ':l;N;s/\n//;bl'
とかかな。// を /,/ にすると、1行CSVに出来る。
878:名無しさん@お腹いっぱい。
18/07/04 22:22:07.40 .net
>>845
ありがとうございます!
すごいですね……。:lってラベル付けでしたっけ。
879:名無しさん@お腹いっぱい。
18/07/04 23:00:04.93 .net
>>841
cat <<. | { tr -d '\n'; echo; }
a
bbb
cc
.
880:名無しさん@お腹いっぱい。
18/07/05 09:36:25.04 .net
Mac付属のsedじゃうまく行かなかった、ってお呼びじゃないか
最近のBSD sedはどうかわからないけど
881:名無しさん@お腹いっぱい。
18/07/05 10:23:41.12 .net
>>848
え? そうなの?
OS Xを持ってないので知らんが Busyboxでも行けるくらいの可搬性はあるぜ?
全部POSIXで規定されてる命令だし。
882:名無しさん@お腹いっぱい。
18/07/05 12:53:17.75 .net
macOSだけでなくBSDでだめっぽい。BSDでだめというか、GNU sedでなら動くか
883:名無しさん@お腹いっぱい。
18/07/05 14:18:26.92 .net
主にパターンスペースに対して処理した直後にどうするってとこの違いかな。他ではBSDでもmacOSとOpenBSDでは行を処理しなかった場合どうするがちょっと動作が違ったり、いろいろ鬼門だなsedは
sed '$!{H;d;};${H;g;s/\n//g;}'
で、いちおう、sedもGNU sedものようだけど、ゴテっとはしてんな
884:名無しさん@お腹いっぱい。
18/07/05 14:50:09.34 .net
>>845も結局改行を削除しているだけ&最後の改行はsedの勝手に付けるだけなので、>>847の方がシンプルでこっちの方がって感じだな
885:名無しさん@お腹いっぱい。
18/07/05 15:36:04.46 .net
>>845のMacやBSD向け変種でけた
sed -e :l -e 'N;s/\n//;$p;bl'
886:名無しさん@お腹いっぱい。
18/07/05 15:51:48.45 .net
おおっ
ラベルを別にすれば/しなきゃなのか
$はそこに入れるのか、なるほど
GNU sedではそれだと.
887:..オプションで変えられるかな くせが強いw
888:名無しさん@お腹いっぱい。
18/07/05 17:34:11.18 .net
教訓。移植性を重視するならsedで変なことするな。普通の正規表現だけ使え
889:名無しさん@お腹いっぱい。
18/07/05 18:25:50.29 .net
昔はもっと酷かったんだろうな #移植性
sedだけじゃなくてgrepとかも。
890:名無しさん@お腹いっぱい。
18/07/05 18:33:28.39 .net
>>856
昔は一つしかなかったから移植性よかったよ。
GNUが台無しにした。
891:名無しさん@お腹いっぱい。
18/07/05 18:41:45.18 .net
ぐぬぅ
892:名無しさん@お腹いっぱい。
18/07/05 22:10:39.00 .net
sed で可搬性を考えると、セミコロンで分ける方法はちょっとあやしいから、
愚直に -e で分けるしか無いのかも知れない、短く書けないけどw
それはさておき、sed の「無限ループに N を入れる」って、趣があると思うんだよね。
C で「ファイルを while の条件文で fgets() が EOF になるまで読み込む処理」に近いというか。
893:名無しさん@お腹いっぱい。
18/07/05 22:32:39.96 .net
>>855
>普通の正規表現だけ使え
というより、一行単位サイクルで処理しろかな
894:名無しさん@お腹いっぱい。
18/07/05 23:00:24.55 .net
>>859
溜めに溜めて溜め込んでってイメージしかないなw
そのwhile~fgets~で言うなら、中にreallocでどんどこ的な
実際どうなんだろと65Mのファイルで「ちょっと」試したら、使用メモリは増えない(??)けど終わらんぞw
895:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/07/07 16:45:13.41 .net
仕様です
63は昔は大きい数字だったのですが
最近は小さくなってしまった
897:名無しさん@お腹いっぱい。
18/07/07 19:05:22.41 .net
数千行のCSVの値を一個一個指定の条件に沿っているかチェックするにはシェルスクリプトでも出来ますかね?
参考書教えて頂けたら嬉しいです。
それともこういうのは他のスクリプトの方が適してたりしますか?
perlも使える環境ではあります。
898:名無しさん@お腹いっぱい。
18/07/07 19:24:54.18 .net
>>864
そのチェックが他の行の参照を含まなくて、shellでできるかという質問にawkやsedも含まれているのなら、できる
というか、excelでやったりしないし、最近はpythonでやることが多い
899:名無しさん@お腹いっぱい。
18/07/07 20:21:55.89 .net
指定の条件によるな。CSVの項目も数値や文字列だけだったらシェルスクリプトだけでもできるだろう
900:名無しさん@お腹いっぱい。
18/07/07 20:52:55.66 .net
ああ、文字列の中のフィールドセパレータ(,)をフィールドセパレータとして除外というのはしないか。awkも同じかな。やってできないこともないだろうけどめんどくさいな
perlはcsv処理するモジュールを入れてだっけ、pythonは最初から入っているよな
901:名無しさん@お腹いっぱい。
18/07/07 21:04:50.61 .net
それ以前にCSVのフォーマットによると思う
改行とかカンマとかダブルクォーテーションを含むとかをきちんとやりだすとシェルだけでもできるだろうけどやりたくない
902:名無しさん@お腹いっぱい。
18/07/07 23:07:51.61 .net
またCSV嵐が来てんのか
903:名無しさん@お腹いっぱい。
18/07/07 23:12:15.86 .net
カンマ入っている場合には "" もしくは '' で囲わなければならないから、それはシェルスクリプトにとっても都合がいい、
IFS=',' fields=($raw)
で簡単にと思ったがそう甘くはなかった。最近流行りのevalでなんとかだとしても、$とかまた別の問題があるしなあ
904:名無しさん@お腹いっぱい。
18/07/07 23:14:30.65 .net
>>869
別にあれとは違うだろうにw 単にCSVだからって拒
905:否反応示しすぎ
906:名無しさん@お腹いっぱい。
18/07/07 23:47:30.31 .net
皆さんお答えありがとうございます。
出来るけど面倒だという感じですね。
PHP使いたいけど仕様上ダメみたいなんですよね。。。
後にメンテナンスが面倒くさそう
907:名無しさん@お腹いっぱい。
18/07/07 23:50:19.59 .net
>>867
残念ながらpythonは入ってなかったです。DBサーバーなんで
908:名無しさん@お腹いっぱい。
18/07/08 00:37:11.05 .net
>>873
perlで高機能な(?)Text::CSVを入れればだけど、それすらなら、
URLリンク(t2aki.doncha.net)
なんぞの数行のをコピペってでもかな。後はperlスレだな
909:名無しさん@お腹いっぱい。
18/07/09 08:36:49.76 .net
>>869
いいえ、また "お前" が来てるんですよ
910:名無しさん@お腹いっぱい。
18/07/09 09:05:14.05 .net
>>872
上とかけあってperl/python/rubyのどれかを入れさせれもらった方がいいと思う。
あるいはjava VMがインストールされてるなら、そっち使ってもシェルよりは楽。
911:名無しさん@お腹いっぱい。
18/07/09 13:02:45.84 .net
素直にCで書けばw
912:名無しさん@お腹いっぱい。
18/07/09 15:13:46.00 .net
1990年代には確かにこういうプログラムもCで書いてたが、今では はやらんよ。
スクリプト言語とかJava VM系言語とかでCSVライブラリ呼ぶように書くのが普通。
もっと低レイヤの処理ならCも使うけど、業務システムにCを使うってのは、
開発効率が悪いせいで、ほぼ亡びた。
913:名無しさん@お腹いっぱい。
18/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:名無しさん@お腹いっぱい。
18/07/09 22:19:36.10 .net
>>878
すでに入ってるLL使うならわかるが、JavaVM入れるくらいならCでいだろ。
915:名無しさん@お腹いっぱい。
18/07/10 08:36:39.48 .net
>>880
>>876は「java VMがインストールされてるなら」って書いてあるじゃろ。
つまりCSV処理のためにjava VM入れるんじゃなくて既に入ってるならって話。
入ってないなら交渉してスクリプト言語入れる方を推奨だな。
エンタープライズ系は静的型検査が欲しいので相変わらずjava VMな言語が強いのよ。
916:名無しさん@お腹いっぱい。
18/07/15 05:45:07.54 .net
シェルスクリプトでwebpackみたいに結合して1ファイルにしてくれるものとか
babelみたいにトランスパイルすることで言語を拡張するものって無いかな
917:名無しさん@お腹いっぱい。
18/07/15 13:28:22.06 .net
>>882
シェルアーカイブ形式とか?
file.sharという形で,ファイル後半に(圧縮した)バイナリーファイル,前半(というかヘッダ)に展開用シェルスクリプトとインストールスクリプトを書いておく)
最近のソフトウェアだとVMWare Horizon ClientsのLinux向けインストーラーがその形式だった。
918:名無しさん@お腹いっぱい。
18/07/16 09:08:44.64 .net
>>883
別にバイナリファイルを動かそうって話じゃないよ
単にくっつけてくれればいいだけ
919:名無しさん@お腹いっぱい。
18/07/16 11:20:08.69 .net
>>884
それがshar
920:名無しさん@お腹いっぱい。
18/07/17 14:15:20.69 .net
>>885
だからぜんぜん違う
webpackみたいに1ファイルに結合するって話をしてる
結合しても結合する前と同じように動く
すこしはsharについて調べてきたら?
921:名無しさん@お腹いっぱい。
18/07/17 14:17:28.78 .net
shar知らない人のために説明しておくと、
これは単なる自己解凍形式の圧縮ファイル形式に過�
922:ャない
923:名無しさん@お腹いっぱい。
18/07/17 14:31:39.62 .net
それよりwebpackとやらについて説明しておくべきだったろ
聞き方が悪い
924:名無しさん@お腹いっぱい。
18/07/17 14:59:08.62 .net
名前出てるんだから調べればいいだけだろ
925:名無しさん@お腹いっぱい。
18/07/17 15:01:52.39 .net
なんで聞く側が偉そうなんだよって話だろ
926:名無しさん@お腹いっぱい。
18/07/17 16:41:05.27 .net
どう使いたいかとかわからんのにな
>>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
927:名無しさん@お腹いっぱい。
18/07/17 18:43:00.23 .net
webpackはCのプリプロセッサのincludeみたいなやつだよ
928:名無しさん@お腹いっぱい。
18/07/17 19:48:43.74 .net
バンドルじゃないの。macOSのバンドルのようなのを単一ファイルでの
単にincludeだったらシェルスクリプトにcatでくっつければええやん。目的は単一のファイルにしたいだけなんだから
バンドルなんだからバンドルをハンドルするヤツが必要じゃないの。んなのはshar使って自分で作ればってとこじゃね
929:名無しさん@お腹いっぱい。
18/07/18 07:15:49.95 .net
webpackとかbabelとか覚えたてのキーワード並べてみたかったんでしょ
そんなのが必要になる状況がクソなんだがなw
930:名無しさん@お腹いっぱい。
18/07/18 10:45:31.69 .net
>>891
> >>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
自分で頑張ればできるって話なら、ファイル結合なんだからcatでもできるよ?
自分で頑張ればいいだけ。結合されても大丈夫なようにコードを書く必要があるけどな
その頑張るのが面倒だからツール使うんだろう?
ちなみにsharなんていらない。だってこれ目的を満たすためのツールじゃないから
自分でcatで頑張る+圧縮もしたいなーって思った時にオプションで使えるかもしれないツール
931:名無しさん@お腹いっぱい。
18/07/18 10:47:00.38 .net
>>894
単一のファイルで何千行も書きたいの?
932:名無しさん@お腹いっぱい。
18/07/18 10:48:08.70 .net
ちなみにsharの問題は展開しないと使えないって所
ルータのような書き込み回数に制限があるシステムでは致命的
933:名無しさん@お腹いっぱい。
18/07/18 10:48:51.53 .net
あと展開のためのコマンドが入ってない可能性もあるしな
ファイル結合するだけなら、外部のコマンドにも依存しない
934:名無しさん@お腹いっぱい。
18/07/18 12:29:11.73 .net
シェルスクリプトは実行可能なままファイル結合する必要性があんまりないってこと
そんなのとかトランスパイルとかが必要になるJavaScriptを指して、クソだなって言われてるんじゃない?
935:名無しさん@お腹いっぱい。
18/07/18 14:24:18.43 .net
てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
他の言語を使うべき。
JavaScriptくらい高級な言語ならアリだけど。
936:名無しさん@お腹いっぱい。
18/07/18 19:30:47.19 .net
ディレクトリ A の中のファイルを全部
ディレクトリ B の中の同名のファイルと diff を撮りたいんですけどどうすればいいですか
xarg で1つの引き数を渡す方法しかわからないのでおねがいします
937:名無しさん@お腹いっぱい。
18/07/18 19:32:58.08 .net
diff -r A B
でいいのでは?
938:名無しさん@お腹いっぱい。
18/07/18 20:29:52.99 .net
少しはggるとかしてからここに恋や
939:名無しさん@お腹いっぱい。
18/07/18 21:00:07.83 .net
その前にmanすれ
940:名無しさん@お腹いっぱい。
18/07/18 21:33:29.76 .net
システムのスクリプトにも参考になるものがたくさんあるよね。zgrepとかzdiffとか
linuxだけどlddがシェルスクリプトだったのには驚いた
941:名無しさん@お腹いっぱい。
18/07/18 21:51:54.45 .net
bashのHISTTIMEFORMATを設定した環境だと
sshログアウトしてもbgプロセス消えないみたいなんだが
なんでなん?
942:名無しさん@お腹いっぱい。
18/07/18 22:33:43.46 .net
設定してなくてもsshログアウトしてもbgプロセス消えないけど、うちでは
他の設定じゃね
943:名無しさん@お腹いっぱい。
18/07/18 23:31:51.58 .net
うーむ
会社の環境だとその設定の有無で変わったんだけど
今vmでcentのminimal立てたら設定なしにbgプロセス生きてた
何か勘違いしてるのか
944:名無しさん@お腹いっぱい。
18/07/19 00:16:48.11 .net
URLリンク(serverfault.com)
だって。ちょい昔からデフォで子プロセスに
945:HUP送らなくなってるんだなあ。OSやディストリによってデフォが違うだろうけど huponexitオンにして、HISTTIMEFORMATを設定してもbgプロセスは消えるねえ
946:名無しさん@お腹いっぱい。
18/07/19 09:21:29.33 .net
case文で,Bash特有の高速化オプションとかありませんかね。
947:名無しさん@お腹いっぱい。
18/07/19 10:02:38.02 .net
>>910
高速化できるんならオプションじゃなく最初からそうしてると思うが、
さらに、高速化が必要なほど遅いcaee文とは?
948:名無しさん@お腹いっぱい。
18/07/19 10:34:16.62 .net
>>902
Aにあるファイル名だけ比較したいんです
Bのなかにはほかにもファイルがあったりするので
diff A/$f B/$f
とか場合によっては
diff A/$f B/*/$f みたいなことがしたかったのです…
ls なり find なりの出力ファイル名を変数に取り出すのってやっぱり難しいんですね
諦めます
レスありがとうございました
949:名無しさん@お腹いっぱい。
18/07/19 11:14:05.74 .net
お題としてはちょっと楽しめると思うけど、諦めちゃうのか
950:名無しさん@お腹いっぱい。
18/07/19 11:19:41.98 .net
find A -type fして、それぞれbasenameとって、find B -name filename -exec hogeってかんじかな。
B側で何度もfindするのを減らしたいけど、キャッシュされればそれほど負荷じゃないか。
951:名無しさん@お腹いっぱい。
18/07/19 12:11:39.09 .net
diffの話ついでに
(GNU) diffでディレクトリごと比較したときに、一方のディレクトリにのみあるファイルを無視するオプションってある?
diff -r /dirA /dirB | grep -v 'にのみ存在'
とやればまあ大抵の場合解決するんだけども、たまたまあるファイルの変更箇所に「にのみ存在」っていう文があった時に
困るので、できればオプションで解決したい。
952:名無しさん@お腹いっぱい。
18/07/19 12:28:48.82 .net
LANG=Cで^Onlyにマッチさせてはじく
953:名無しさん@お腹いっぱい。
18/07/19 12:35:37.30 .net
diffの出力って行頭の文字が重要なのに、
これを無視した日本語ロケール作者は反省するべき。
954:名無しさん@お腹いっぱい。
18/07/19 12:53:00.49 .net
結果に対してsedで…ってのはさすがに無駄だな
955:名無しさん@お腹いっぱい。
18/07/19 12:57:00.83 .net
>>916
ああなるほど。
diffの出力結果では行頭は変化を表わすところだから
その行頭を除けばいいね。
956:名無しさん@お腹いっぱい。
18/07/19 15:19:36.24 .net
詳しい解説サンクス
957:名無しさん@お腹いっぱい。
18/07/19 20:13:49.97 .net
>>909
サンクス
俺の勘違いだったっぽい
958:名無しさん@お腹いっぱい。
18/07/20 01:50:52.37 .net
>>900
> てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
行数で使う言語を決めるなや
シェルスクリプトは、コマンドの連携処理を一番シンプルに書くことができる言語
シェルスクリプトが適している問題を、長いからという理由で他の言語を使うともっと長くなる
なぜ非効率な言語を使うのか?
959:名無しさん@お腹いっぱい。
18/07/20 02:03:28.48 .net
はいはい
960:名無しさん@お腹いっぱい。
18/07/20 06:54:58.07 .net
この引用符…あっ(察し
961:名無しさん@お腹いっぱい。
18/07/20 07:21:43.92 .net
引用符?
962:名無しさん@お腹いっぱい。
18/07/20 12:12:45.33 .net
>>922
まさにシェルスクリプトがプログラム間連携のための言語だからだよ。
1000行以上にも及ぶ複雑なプログラム間連携処理を
シェルスクリプトで書く状況ってのは
モジュール分割に失敗してる可能性がきわめて高い。
100行くらいの単体でも十分に使えるシェルスクリプトが10個ならば問題ないが。
シェルスクリプトは現代的プログラミング言語の持つ数々の抽象化機能を
欠いていて大規模プログラミングに向かないことは常に意識するべき。
963:名無しさん@お腹いっぱい。
18/07/20 16:50:00.03 .net
仕事でならな。個人的なのでもそういう学習習得意欲がないんだったら馬の耳に念仏かと
964:名無しさん@お腹いっぱい。
18/07/20 20:11:37.10 .net
ケンカはやめて(><)
965:名無しさん@お腹いっぱい。
18/07/21 02:15:31.20 .net
二人をとめて \(^o^)/
966:名無しさん@お腹いっぱい。
18/07/21 02:44:08.71 .net
私だ
967:名無しさん@お腹いっぱい。
18/07/21 09:20:03.54 .net
あえて不向き
968:なことをやるのは好きだよ
969:名無しさん@お腹いっぱい。
18/07/21 13:29:23.62 .net
>>926
> 1000行以上にも及ぶ複雑なプログラム間連携処理を
> シェルスクリプトで書く状況ってのは
> モジュール分割に失敗してる可能性がきわめて高い。
だからシェルスクリプトでモジュール分割するんでしょ?
970:名無しさん@お腹いっぱい。
18/07/21 13:30:12.48 .net
>>931
外部コマンドの呼び出しが多数存在する場合、
シェルスクリプトを使うのが向いてる
971:名無しさん@お腹いっぱい。
18/07/21 15:15:10.19 .net
>>933
外部コマンド呼び出しは敗北と同義よ!
漢なら全て内蔵コマンドで処理をせい!
972:名無しさん@お腹いっぱい。
18/07/21 15:36:08.22 .net
>>932
できてるならそんな話題になってないな
973:名無しさん@お腹いっぱい。
18/07/21 16:05:41.70 .net
>>935
普通に . (source)を使用するだけだけど?
974:名無しさん@お腹いっぱい。
18/07/21 16:08:19.12 .net
>>934
内部コマンドだけで処理できるなら
普通の言語のほうが良いよ
外部コマンドの連携に強いシェルスクリプトは
外部コマンドを呼び出すために使うもの
逆に普通の言語だと外部コマンドの呼び出しは面倒なんだ。
975:名無しさん@お腹いっぱい。
18/07/21 16:16:33.64 .net
そろそろ板違い
976:名無しさん@お腹いっぱい。
18/07/21 16:30:52.91 .net
>>936
そういうのもできてるなら話題になってないって言ってるんだけど
できてるって、言語的にできるできないじゃないよ
>>938
板違いってか本題から外れすぎだな
977:名無しさん@お腹いっぱい。
18/07/22 19:37:39.33 .net
>>934
includeやimportも禁止な
978:名無しさん@お腹いっぱい。
18/07/22 22:44:37.34 .net
やっぱ次のスレからワッチョイ付きにしようね
979:名無しさん@お腹いっぱい。
18/07/22 23:49:40.49 .net
>>939
だからモジュール分割は . で出来てるから話題になってないってことでしょ?
980:名無しさん@お腹いっぱい。
18/07/23 01:44:04.51 .net
この掲示板ってワッチョイないのでは…
というかidもなかった
981:名無しさん@お腹いっぱい。
18/07/23 01:57:54.18 .net
使えないのかもしかして
982:名無しさん@お腹いっぱい。
18/07/23 02:50:48.89 .net
掲示板ごとの設定だからね
983:名無しさん@お腹いっぱい。
18/07/23 03:47:58.52 .net
じゃあもうこの板捨てるか?
Linux板にでも移動すりゃいいでしょ
984:名無しさん@お腹いっぱい。
18/07/23 04:20:40.19 .net
ワンチャンある
最近精神年齢キッズが多すぎるしな
985:名無しさん@お腹いっぱい。
18/07/23 11:29:23.13 .net
test
986:名無しさん@お腹いっぱい。
18/07/23 11:56:50.52 .net
false
987:名無しさん@お腹いっぱい。
18/07/23 20:31:02.18 .net
>>946
OSの話じゃないから向こうでやってもいいかもね