ÉîÈëÃ÷È·Linux shellÖÐ2>&1µÄ¼ÄÒå(È«Íø×îÈ«£¬¿´Íê¾Í¶®)
1 ºÍ 2 ÔÚ Linux Öдú±íʲô
ÔÚLinuxϵͳÖÐ0 1 2ÊÇÒ»¸öÎļþÐÎò·û
´ÓÉÏ±í¿´µÄ³öÀ´£¬ÎÒÃÇƽʱʹÓõÄ
echo "hello" > t.log
µÇ¼ºó¸´ÖÆ
×ÅʵҲ¿ÉÒÔд³É
echo "hello" 1> t.log
µÇ¼ºó¸´ÖÆ
¹ØÓÚ2>&1µÄ¼ÄÒå
¹ØÓÚÊäÈë/Êä³öÖض¨Ïò±¾ÎľͲ»Ï¸ËµÁË
¼ÄÒ壺½«±ê×¼¹ýʧÊä³öÖض¨Ïòµ½±ê×¼Êä³ö
·ûºÅ>&ÊÇÒ»¸öÕûÌ壬²»¿ÉÍÑÀ룬ÍÑÀëºó¾Í²»ÊÇÉÏÊö¼ÄÒåÁË¡£
ºÃ±ÈÓÐЩÈË¿ÉÄÜ»áÕâôÏ룺2ÊDZê×¼¹ýʧÊäÈ룬1ÊDZê×¼Êä³ö£¬>ÊÇÖض¨Ïò·ûºÅ£¬ÄÇô”½«±ê×¼¹ýʧÊä³öÖض¨Ïòµ½±ê×¼Êä³ö”ÊDz»ÊǾÍÓ¦¸Ãд³É”2>1″¾ÍÐÐÁË£¿ÊÇÕâÑùÂð£¿
ÈôÊÇÊÇʵÑé¹ý£¬Äã¾ÍÖªµÀ2>1µÄд·¨×ÅʵÊǽ«±ê×¼¹ýʧÊä³öÖض¨Ïòµ½ÃûΪ”1″µÄÎļþÀïÈ¥ÁË
д³É2&>1Ò²ÊDz»¿ÉÒÔµÄ
Ϊʲô2>&1Òª·ÅÔÚºóÃæ
˼Á¿ÈçÏÂÒ»ÌõshellÏÂÁî
nohup java -jar app.jar >log 2>&1 &
µÇ¼ºó¸´ÖÆ
(×îºóÒ»¸ö&ÌåÏÖ°ÑÌõÏÂÁî·Åµ½ºǫִ́ÐУ¬²»ÊDZ¾ÎÄÖص㣬²»¶®µÄ¿ÉÒÔ×ÔÐÐGoogle)
Ϊʲô2>&1Ò»¶¨ÒªÐ´µ½>logºóÃ棬²ÅÌåÏÖ±ê×¼¹ýʧÊä³öºÍ±ê×¼Êä³ö¶¼¶¨Ïòµ½logÖУ¿
ÎÒÃÇÎÞ·Á°Ñ1ºÍ2¶¼Ã÷È·ÊÇÒ»¸öÖ¸Õë,È»Øʺó¿´ÉÏÃæµÄÓï¾ä¾ÍÊÇÕâÑùµÄ£º
ÔÀ´1----->ÆÁÄ» £¨1Ö¸ÏòÆÁÄ»£© Ö´ÐÐ>logºó£¬ 1----->log (1Ö¸Ïòlog) Ö´ÐÐ2>&1ºó£¬ 2----->1 (2Ö¸Ïò1£¬¶ø1Ö¸Ïòlog,Òò´Ë2Ò²Ö¸ÏòÁËlog) `` ÔÙÀ´ÆÊÎöÏÂ
µÇ¼ºó¸´ÖÆ
nohup java -jar app.jar 2>&1 >log &
ÔÀ´1----->ÆÁÄ» £¨1Ö¸ÏòÆÁÄ»£© Ö´ÐÐ2>&1ºó£¬ 2----->1 (2Ö¸Ïò1£¬¶ø1Ö¸ÏòÆÁÄ»,Òò´Ë2Ò²Ö¸ÏòÁËÆÁÄ») Ö´ÐÐ>logºó£¬ 1----->log (1Ö¸Ïòlog£¬2ÕÕ¾ÉÖ¸ÏòÆÁÄ»)
µÇ¼ºó¸´ÖÆ
ÒÔÊÇÕâ¾Í²»ÊÇÎÒÃÇÏëÒªµÄЧ¹û¡£
ËÑË÷ÃñÖÚºÅGitHubÔ³ºǫ́»Ø¸´¡°´ò·É»ú¡±£¬»ñÈ¡Ò»·Ý¾ªÏ²Àñ°ü¡£
¼òÆÓ×ö¸öÊÔÑé²âÊÔÏÂÉÏÃæµÄÏë·¨£º
java´úÂëÈçÏ£º
public class Htest { public static void main(String[] args) { System.out.println("out1"); System.err.println("error1"); } }
µÇ¼ºó¸´ÖÆ
javac±àÒëºóÔËÐÐÏÂÃæÖ¸Á
java Htest 2>&1 > log
µÇ¼ºó¸´ÖÆ
Äã»áÔÚÖÕ¶ËÉÏ¿´µ½Ö»Êä³öÁË”error1″£¬logÎļþÖÐÔòÖ»ÓДout1″
ÿ´Î¶¼Ð´”>log 2>&1″̫ƶÀ§£¬ÄܼòдÂð£¿
ÓÐÒÔÏÂÁ½ÖÖ¼òд·½·¨
&>log >&log
µÇ¼ºó¸´ÖÆ
ºÃ±ÈÉÏÃæС½ÚÖеÄд·¨¾Í¿ÉÒÔ¼òдΪ£º
nohup java -jar app.jar &>log &
µÇ¼ºó¸´ÖÆ
ÉÏÃæÁ½ÖÖ·½·¨¶¼ºÍ”>log 2>&1″Ò»¸öÓïÒå¡£
ÄÇô ÉÏÃæÁ½ÖÖ·½·¨ÖÐ&>ºÍ>&ÓÐÇø±ðÂð£¿
ÓïÒåÉÏÊÇûÓÐÈκÎÇø±ðµÄ£¬¿ÉÊǵÚÒ»Öз½·¨ÊÇ×î¼ÑÑ¡Ôñ£¬Ò»Ñùƽ³£Ê¹ÓõÚÒ»ÖÖ¡£
ÒÔÉϾÍÊÇÉîÈëÃ÷È·Linux shellÖÐ2>&1µÄ¼ÄÒå(È«Íø×îÈ«£¬¿´Íê¾Í¶®)µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡