シェルスクリプト総合 その27 at UNIX
[2ch|▼Menu]
[前50を表示]
500:名無しさん@お腹いっぱい。
18/06/11 02:45:32.35 .net
スレチの自覚が無いとか、本当バカ

501:名無しさん@お腹いっぱい。
18/06/11 02:49:17.37 .net
シェルスクリプトの話題なのにスレチってどういうこと?

502:名無しさん@お腹いっぱい。
18/06/11 02:57:45.51 .net
>>482
俺はすべて分かってた。
ヒントだけ出してやったんだからありがたくいただけ。
これがスレ違い以外の何物だと...

503:名無しさん@お腹いっぱい。
18/06/11 03:07:25.04 .net
ん? シェルスクリプト総合でしょ?
質問スレじゃないし
シェルスクリプトの話題で楽しめばいいじゃん?

504:名無しさん@お腹いっぱい。
18/06/11 03:30:27.23 .net
そろそろ仲直りしろよお前ら

505:名無しさん@お腹いっぱい。
18/06/11 03:44:51.73 .net
確かにそれ専用の文字があるならそれを使ったほうがいいね。
some data␟other data␟42␞
some data␟other data␟42␞
↑こういうの。
既にそういうフォーマットがあってもいいと思うけどざっと検索したところでは見付からない。
なにか不都合でもあるのか、単純にU+001E/Fの知名度が低すぎるのか。
ところでPOSIX awkはRsやFSに任意の文字って指定できたっけ。GNU awkではできたんだけれど。

506:名無しさん@お腹いっぱい。
18/06/11 04:48:35.52 .net
>>486 https://www.freebsd.org/cgi/man.cgi?query=awk&sektion=1 あるし、STANDARDSはもとより本文でも拡張したよってのは無いからPOSIXとしてあるんじゃね



508:名無しさん@お腹いっぱい。
18/06/11 04:51:18.43 .net
URLリンク(pubs.opengroup.org)
こっちかこれか。あるね

509:名無しさん@お腹いっぱい。
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で実行する文は、実行段階ならないと
わからないのだから当然ではあるが


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

332日前に更新/258 KB
担当:undef