ÎÞÂÛÊÇ´¦ÀíÓû§ÊäÈë¡¢Îļþ²Ù×÷£¬»¹ÊÇʵÏÖ¸´ÔÓµÄËã·¨Âß¼£¬³ÌÐò¶¼ÐèÒª¸ù¾Ýµ±Ç°µÄ״̬»òÌõ¼þ×ö³öÑ¡Ôñ£¬ÒÔÖ´ÐÐÏàÓ¦µÄ²Ù×÷
ÔÚLinux»·¾³Ï£¬CÓïÑÔ¼°ÆäÑÜÉúÓïÑÔ£¨ÈçC++¡¢Bash½Å±¾µÈ£©¹ã·ºÓ¦Ó㬶ø¶à·ÖÖ§Óï¾äÔòÊÇÕâЩÓïÑÔÖв»¿É»òȱµÄÒ»²¿·Ö
ËüÃÇʹ³ÌÐòÄܹ»»ùÓÚ¶à¸öÌõ¼þÖ´Ðв»Í¬µÄ´úÂë¿é£¬´Ó¶øÊµÏÖÁ˸ü¼ÓÁé»îºÍÇ¿´óµÄ¹¦ÄÜ
±¾ÎĽ«ÉîÈë̽ÌÖLinux¶à·ÖÖ§Óï¾ä£¬½ÒʾÆäÔÚ±à³ÌÖеĹؼü×÷Ó㬲¢Í¨¹ýʵÀýչʾÈçºÎ¸ßЧµØÊ¹ÓÃËüÃÇ
Ò»¡¢¶à·ÖÖ§Óï¾äµÄ»ù±¾¸ÅÄî ¶à·ÖÖ§Óï¾ä£¬Óֳƶà··ÖÖ§»òÌõ¼þ·ÖÖ§£¬ÔÊÐí³ÌÐò¸ù¾Ý¶à¸ö²»Í¬µÄÌõ¼þÖ´ÐÐÏàÓ¦µÄ´úÂë¶Î
ÔÚCÓïÑÔºÍBash½Å±¾ÖУ¬×îµäÐ͵Ķà·ÖÖ§Óï¾äÊÇ`if-else if-else`½á¹¹
ÕâÖֽṹͨ¹ýһϵÁеÄÌõ¼þÅжϣ¬ÖðÒ»¼ì²éÿ¸öÌõ¼þÊÇ·ñÎªÕæ£¬Ò»µ©ÕÒµ½ÎªÕæµÄÌõ¼þ£¬¾ÍÖ´ÐÐÓë¸ÃÌõ¼þÏà¹ØÁªµÄ´úÂë¿é£¬È»ºóÌø³öÕû¸ö½á¹¹
Èç¹ûËùÓÐÌõ¼þ¶¼²»Âú×㣬ÔòÖ´ÐÐ`else`²¿·ÖµÄ´úÂ루Èç¹û´æÔڵϰ£©
1. CÓïÑÔÖеĶà·ÖÖ§Óï¾ä ÔÚCÓïÑÔÖУ¬¶à·ÖÖ§Óï¾äµÄ»ù±¾Óï·¨ÈçÏ£º if (condition1) { // µ±condition1ÎªÕæÊ±Ö´ÐеĴúÂë } elseif (condition2) { // µ±condition2ÎªÕæÊ±Ö´ÐеĴúÂë } elseif (condition3) { // µ±condition3ÎªÕæÊ±Ö´ÐеĴúÂë } else{ // µ±ËùÓÐÌõ¼þ¶¼²»ÎªÕæÊ±Ö´ÐеĴúÂë } ÿ¸ö`else if`×Ӿ䶼ÊÇÒ»¸öеÄÌõ¼þ¼ì²éµã£¬Ö»Óе±ÆäÇ°ÃæµÄËùÓÐ`if`ºÍ`elseif`Ìõ¼þ¶¼²»Âú×ãʱ£¬²Å»áÆÀ¹ÀËü
`else`²¿·ÖÊÇ¿ÉÑ¡µÄ£¬ÓÃÓÚ´¦ÀíËùÓÐÌõ¼þ¶¼²»Âú×ãµÄÇé¿ö
2. Bash½Å±¾ÖеĶà·ÖÖ§Óï¾ä Bash½Å±¾ÖеĶà·ÖÖ§Óï¾äÓëCÓïÑԷdz£ÏàËÆ£¬µ«Óï·¨ÂÔÓв»Í¬£¬ÌرðÊÇÔÚÌõ¼þ±í´ïʽµÄÊéдÉÏ
BashʹÓÃ`test`ÃüÁî»ò`¡¾¡¾ ¡¿¡¿`½á¹¹À´ÆÀ¹ÀÌõ¼þ
if ¡¾ condition1¡¿; then # µ±condition1ÎªÕæÊ±Ö´ÐеĴúÂë elif ¡¾ condition2¡¿; then # µ±condition2ÎªÕæÊ±Ö´ÐеĴúÂë elif ¡¾ condition3¡¿; then # µ±condition3ÎªÕæÊ±Ö´ÐеĴúÂë else # µ±ËùÓÐÌõ¼þ¶¼²»ÎªÕæÊ±Ö´ÐеĴúÂë fi ×¢Ò⣬BashÖеĶà·ÖÖ§Óï¾äÒÔ`fi`½áÊø£¬ÕâÊÇ`if`Óï¾äµÄÄæÐòƴд£¬ÓÃÓÚ±ê¼ÇÓï¾äµÄ½áÊø
¶þ¡¢¶à·ÖÖ§Óï¾äµÄʵ¼ÊÓ¦Óà ¶à·ÖÖ§Óï¾äµÄÁé»îÐÔºÍÇ¿´ó¹¦ÄÜ£¬Ê¹Æä³ÉΪ´¦Àí¸´ÔÓÂß¼ÅжϵÄÊ×Ñ¡¹¤¾ß
ÏÂÃæ£¬ÎÒÃÇͨ¹ý¼¸¸ö¾ßÌåµÄÓ¦Óó¡¾°À´Õ¹Ê¾Æäʵ¼ÊÓ¦ÓÃ
1. Óû§ÊäÈë´¦Àí ÔÚÃüÁîÐгÌÐòÖУ¬¸ù¾ÝÓû§ÊäÈëÖ´Ðв»Í¬²Ù×÷Êdz£¼ûµÄÐèÇó
ÀýÈ磬һ¸ö¼òµ¥µÄ¼ÆËãÆ÷³ÌÐò£¬¿ÉÒÔ¸ù¾ÝÓû§ÊäÈëµÄ²Ù×÷·û£¨Èç¼Ó¡¢¼õ¡¢³Ë¡¢³ý£©Ö´ÐÐÏàÓ¦µÄ¼ÆËã
include
2. ÎļþÀàÐÍÅжÏ
ÔÚLinux½Å±¾±à³ÌÖУ¬¾³£ÐèÒª¸ù¾ÝÎļþµÄÀàÐÍ£¨ÈçÆÕͨÎļþ¡¢Ä¿Â¼¡¢Á´½ÓµÈ£©Ö´Ðв»Í¬µÄ²Ù×÷ ¿ÉÒÔʹÓÃ`file`ÃüÁî½áºÏ¶à·ÖÖ§Óï¾äÀ´ÊµÏÖ
!/bin/bash
file_path=$1
file_type=$(file --mime-type -b $file_path)
if ¡¾¡¾ $file_type == inode/directory ¡¿¡¿; then
echo $file_path ÊÇÒ»¸öĿ¼
elif ¡¾¡¾ $file_type == inode/symlink ¡¿¡¿; then
echo $file_path ÊÇÒ»¸ö·ûºÅÁ´½Ó
elif ¡¾¡¾ $file_type == text/plain ¡¿¡¿; then
echo $file_path ÊÇÒ»¸öÎı¾Îļþ
else
echo $file_path ÊÇÆäËûÀàÐ͵ÄÎļþ
fi
Õâ¸ö½Å±¾½ÓÊÜÒ»¸öÎļþ·¾¶×÷Ϊ²ÎÊý£¬Ê¹ÓÃ`file`ÃüÁî»ñÈ¡ÎļþµÄMIMEÀàÐÍ£¬È»ºó¸ù¾ÝÀàÐÍÖ´Ðв»Í¬µÄÊä³ö
3. ´íÎó´¦Àí
ÔÚ±àд½¡×³µÄ³ÌÐòʱ£¬´íÎó´¦ÀíÊDz»¿É»òȱµÄ ¶à·ÖÖ§Óï¾ä¿ÉÒÔ°ïÖú³ÌÐò¸ù¾Ý´íÎóÀàÐÍÖ´ÐÐÏàÓ¦µÄ»Ö¸´»ò±¨¸æ²Ù×÷
include
Èý¡¢ÓÅ»¯¶à·ÖÖ§Óï¾äµÄ¼¼ÇÉ
ËäÈ»¶à·ÖÖ§Óï¾ä¹¦ÄÜÇ¿´ó£¬µ«ÔÚʹÓÃʱҲӦעÒâÆäЧÂʺͿɶÁÐÔ ÒÔÏÂÊÇһЩÓÅ»¯¼¼ÇÉ£º
1.¼õÉÙǶÌ×£º¾¡Á¿½«¸´ÔÓµÄÂß¼²ð·Ö³É¶à¸öº¯Êý»òÄ£¿é£¬¼õÉÙ`if-else`µÄǶÌײã´Î£¬Ìá¸ß´úÂëµÄ¿É¶ÁÐÔ
2.ʹÓÃswitchÓï¾ä£¨µ±Ìõ¼þΪÀëɢֵʱ£©£ºÔÚijЩÇé¿öÏ£¬`switch`Óï¾ä±È`if-else if-else`¸ü¼ÓÖ±¹ÛºÍ¸ßЧ CÓïÑÔÖ§³Ö`switch`£¬¶øBashÔòͨ¹ý`case`Óï¾äʵÏÖÀàËÆ¹¦ÄÜ
3.Ìáǰ·µ»Ø£ºÔÚº¯ÊýÄÚ²¿£¬Èç¹û¿ÉÒÔ¸ù¾ÝÌõ¼þÌáǰ·µ»Ø½á¹û£¬¿ÉÒÔ±ÜÃâ²»±ØÒªµÄ·ÖÖ§ÅжÏ
4.ʹÓÃÂß¼ÔËËã·û£ºÍ¨¹ýÂß¼Ó루&&£©ºÍÂß¼»ò£¨||£©ÔËËã·û£¬¿ÉÒÔÔÚ²»Ôö¼Ó·ÖÖ§²ã´ÎµÄÇé¿öÏÂ×éºÏÌõ¼þÅжÏ
½áÓï
¶à·ÖÖ§Óï¾äÊDZà³ÌÖв»¿É»òȱµÄ¹¤¾ß£¬ËüʹµÃ³ÌÐòÄܹ»¸ù¾Ý²»Í¬µÄÌõ¼þÖ´ÐÐÏàÓ¦µÄ²Ù×÷£¬´Ó¶øÊµÏÖ¸´ÔÓµÄÂß¼ÅÐ¶Ï ÔÚLinux»·¾³Ï£¬ÎÞÂÛÊÇCÓïÑÔ»¹ÊÇBash½Å±¾£¬¶à·ÖÖ§Óï¾ä¶¼°çÑÝ×ÅÖØÒªµÄ½ÇÉ« ͨ¹ýºÏÀíÉè¼ÆºÍÓÅ»¯¶à·ÖÖ§Óï¾ä£¬ÎÒÃÇ¿ÉÒÔ±àд³ö¸ü¼Ó¸ßЧ¡¢¿É¶ÁºÍ½¡×³µÄ³ÌÐò ÕÆÎÕ¶à·ÖÖ§Óï¾äµÄ¾«Ë裬²»½öÊǶԱà³Ì¼¼ÊõµÄÌáÉý£¬¸üÊǶԱà³ÌÒÕÊõµÄ×·Çó Ï£Íû±¾ÎÄÄܰïÖúÄãÉîÈëÀí½â²¢¸ßЧӦÓÃLinux¶à·ÖÖ§Óï¾ä£¬ÈÃÄãµÄ±à³Ì֮·¸ü¼Ó¿í¹ãºÍ¾«²Ê