[過去ログ]
シェルスクリプト総合 その26 [無断転載禁止]©2ch.net (1002レス)
シェルスクリプト総合 その26 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/unix/1489979246/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
817: 名無しさん@お腹いっぱい。 [sage] 2018/03/31(土) 01:12:03.45 aliasって面白いなー。これでなんか面白いことできそう #!/bin/sh alias foo="foo() { echo before; foo_; echo after; }; foo_" foo() { echo foo } unalias foo foo # ↓ # before # foo # after http://mevius.5ch.net/test/read.cgi/unix/1489979246/817
818: 817 [sage] 2018/03/31(土) 01:41:51.42 やべぇ、このaliasの使い方、 めちゃくちゃ強力じゃないか? 文法の拡張が可能かもしれない こんな所でネタにするレベルじゃないわ http://mevius.5ch.net/test/read.cgi/unix/1489979246/818
819: 817 [sage] 2018/03/31(土) 02:06:02.61 黒魔術置いときますね #!/bin/sh def() { alias begin="$1() { echo before; $1_ "\$@"; echo after; }; $1_() { $3=\$1" alias end="}; unalias begin end" } def foo [ i ] begin echo foo $i end def bar [ j ] begin echo bar $j end foo 123 bar 456 http://mevius.5ch.net/test/read.cgi/unix/1489979246/819
821: 名無しさん@お腹いっぱい。 [sage] 2018/03/31(土) 02:48:01.26 >>820 bashとかだとデフォルトでは無効 expand_aliasesを使えば有効にできる ただ>>817の挙動が全てのシェルで同じなのかは調べてない aliasの挙動をちゃんと把握してはないけど どうやら行単位で実行前に、単純な文字列置換が行われてる感じだね だからevalでもできないスクリプトの自己書き換えみたいなことができちゃう 参考(ちゃんと読んではいないw) http://magicant.txt-nifty.com/main/2017/10/yash-2-285-b4d8.html http://mevius.5ch.net/test/read.cgi/unix/1489979246/821
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.475s*