improve of cmpl.
[bush.git] / mydoc / note.txt
bloba1ec5abe1b31fb21ae157602c96b61ea8bdbdecd
2 @ ÔÚconfigure½Å±¾ÖÐÊä³öµ÷ÊÔÐÅÏ¢
3 { $as_echo "================== $ac_f ==================" >&6; }
7 @ º¯ÊýÃû¡¢Ìí¼Ó'::'Óë'.'£¬»·¾³±äÁ¿ÃûÌí¼Ó'.'£¬ÓÃÓÚʹÓò»Í¬µÄnamespace
9 @ ÔÚÃüÁîÐÐÊäÈëʱ£¬tabÊÇÒÔµ¥¸ö×Ö·ûÊäÈëµÄ£¬µ±Ê¹ÓÃpasteÕ³ÌùÄÚÈÝʱ£¬ÊÇÒ»¸öbuffÊäÈë
10   µÄ£¬Èç¹ûÊǵ¥¸ötab£¬ÓÃÓÚcmdhint£¬Èç¹ûÊÇbuffÊäÈëµÄ£¬ÒÔasciiÂëÊäÈë¡£
12 @ set -xÊÇglobalµÄ£¬Ìí¼Óset -d£¬ÓÃÓÚµ±Ç°º¯ÊýµÄµ÷ÊÔÐÅÏ¢Êä³ö¡£ÔÚµ÷ÓÃÆäËüº¯Êý£¬ÒÔ
13   ¼°º¯Êý·µ»Øʱ£¬disable£¬´Óµ÷Óú¯Êý·µ»Øʱrecovery¡£
18 [bug-improve]
20 @ µ±ÃüÁîÐÐÆðʼλÖò»Îª0ʱ£¬°´up/downÇл»µ½Ö®Ç°µÄcmdʱ£¬ÒÔÐÐÊ×ΪÏÔʾ¡£
22 @ ÔÚÃüÁîÐÐÊäÈëʱ£¬tabÊÇÒÔµ¥¸ö×Ö·ûÊäÈëµÄ£¬µ±Ê¹ÓÃpasteÕ³ÌùÄÚÈÝʱ£¬ÊÇÒ»¸öbuffÊäÈë
23   µÄ£¬Èç¹ûÊǵ¥¸ötab£¬ÓÃÓÚcmdhint£¬Èç¹ûÊÇbuffÊäÈëµÄ£¬ÒÔasciiÂëÊäÈë¡£
25 @ echo "string"$'\n' does not parsing, maybe it's not a bug, it can be put out
26   of double-quote.
28 @ '\' in single quote string does not effect. cmd below leading error.
29 ```
30 $ set -x
31 $ data="CFLAGS_DEPHDR_Y=' -MT ${DST_FILE[0]} -MD -MP -MF ${DST_FILE[1]} '"
32 + data='CFLAGS_DEPHDR_Y=\'\'' -MT  -MD -MP -MF  \'\'''
33 $ eval "$(eval echo \"${data}\")"
34 ++ eval echo '"CFLAGS_DEPHDR_Y=\'\''' -MT -MD -MP -MF '\'\''"'
35 +++ echo 'CFLAGS_DEPHDR_Y=\'\'' -MT -MD -MP -MF \'\'''
36 + eval 'CFLAGS_DEPHDR_Y=\'\'' -MT -MD -MP -MF \'\'''
37 ++ CFLAGS_DEPHDR_Y=\'
38 ++ -MT -MD -MP -MF \'
39 ++ '[' -x /usr/lib/command-not-found ']'
40 ++ /usr/lib/command-not-found -- -MT
41 -MT: command not found
42 ++ return 127
43 $ set +x
44 ```
45     and the cmd below waiting for single quote char.
46 ```
47 $ eval 'CFLAGS_DEPHDR_Y=\' -MT  -MD -MP -MF  \''
48
49 ``` 
52 [general]
54 @ Í¨ÓÃargs´¦Àíº¯Êý£¨¶¨Òå¡¢var/proc¡¢helper£©
56 @ ln exe name½âÎöµ½xxx_main()º¯Êý
58 @ weak main() exelib³ÌÐò£¬
60 @ tmp loadable-cmd, ÒÔinterpreter½øÐÐloadºÍinit.
62 @ [xxx]ÒÔ__a_xxxΪenvarÃû³Æ£¬Ïà¶Ô¸üͨÓÃһЩ¡£
64 @ º¯ÊýÃû¡¢Ìí¼Ó'::'Óë'.'£¬»·¾³±äÁ¿ÃûÌí¼Ó'.'£¬ÓÃÓÚʹÓò»Í¬µÄnamespace
65 # »òÉèÖÃopt½«::ÒÔ__´æ´¢¡£
67 @ *vnameÖеÄʹÓÃ'-'£¬Õâ»áʹvarÃû³ÆºÍͨÓõıà³ÌÓïÑÔÃû³Æ²»¼æÈÝ¡£»òÖ»ÊÇÓÃÓÚ²ÎÊýÅä
68   Öã¬ÒÔ¼æÈÝmakefile
70 @ Ìí¼Ó':='ºÍ':+='£¬ÓëmakefileÖеŦÄÜÏàͬ.
71 # ÄÚÈÝΪNULLʱµÄvariableµÄ¸³Öµ¡£
72 # Ö»½øÐÐassign£¬²»ÓÃÓÚcmd֮ǰµÄ»·¾³±äÁ¿¡£Ê¹ÓÃÔ²À¨ºÅÒÔ
73   sub-scriptÔËÐУ¬ÒÔ¼æÈÝ¡£
74 # ÒÔ';'Ϊterminator¡£
76 @ Ìí¼Ó${var-=xxx}ÖеÄinitµ½envarµÄassign
77 # :-
78 # :=
79 # :+
80 # :?
83 [envar]
85 @ envar="$(echo abcd)"
86   echo abcd >>> envar
88 @ Ìí¼Ó${=var-=}£¬ÓÃÓÚ½«varÖ®ºóµÄopr´æ´¢µ½var£¬¶ø²»×ª»»µ½ÃüÁîÐÐbuff£¬ÔÙ´æ´¢µ½
89   »·¾³±äÁ¿¡£°üÀ¨slice¡¢replace¡¢prev-cut¡¢post-cut¡¢init-assign...
91 @ ${=envar//content/relplace}£¬½«Êä³öÄÚÈݸüе½envar
92 @ ${envar++}${envar--}£¬»·¾³±äÁ¿µÄincºÍdec
95 [inner-cmd]
97 @ Ìí¼Óloadable/builtins£¬»òset -e <logfile>£¬ÓÃÓÚÊä³ö½Å±¾³ÌÐòÔËÐмǼ£¬²¢uniq£¬
98   »ñÈ¡½Å±¾ÍⲿÒÀÀµÃüÁ¡£
100 @ Ê¹ÓÃloadable³ÌÐòÔËÐÐ'bush --loadable <prog>', ÔÚ³ÌÐòÖпÉÔÚÏàͬ½ø³Ì¿Õ¼äµ÷ÓÃsh
101   ½Å±¾µÄº¯Êý£¬ÓÃÓÚsh½Å±¾ºÍc´úÂëµÄmixing.
102 # sh³ÌÐòÔÚloadable³ÌÐòÖÐload£¬shÒÔsharelibʹÓÃ
103 # µ±$0·Çµ±Ç°³ÌÐòÃû³Æʱ£¬ÓëbusyboxÏàͬ£¬ÒÔinternal-cmdÔËÐУ¬¼´loadÒ»¸ö³ÌÐòÃû³Æ¶Ô
104   Ó¦µÄloadable³ÌÐò¡£
106 @ set -xÊÇglobalµÄ£¬Ìí¼Óset -d£¬ÓÃÓÚµ±Ç°º¯ÊýµÄµ÷ÊÔÐÅÏ¢Êä³ö¡£ÔÚµ÷ÓÃÆäËüº¯Êý£¬ÒÔ
107   ¼°º¯Êý·µ»Øʱ£¬disable£¬´Óµ÷Óú¯Êý·µ»Øʱrecovery¡£