முனைய வெள்ளி: பாஷ் [முக்கிய விரிவாக்கம்]

முதலில் நான் மன்னிப்பு கேட்க விரும்புகிறேன், கடந்த வெள்ளிக்கிழமை முதல் என்னால் இடுகையை எழுத முடியவில்லை, எனவே இன்று இழந்த நாளை ஈடுசெய்ய கூடுதல் சேர்க்கிறேன். 🙂

பிரேஸ் விரிவாக்கம்

ஸ்பானிஷ் மொழியில், முக்கிய விரிவாக்கம் எனக்கு ஈர்க்கப்பட்ட ஒரு செயல்பாடாகத் தெரிகிறது சி ஷெல், இது பிரேஸ்களுக்குள் உள்ளிடப்பட்ட எழுத்துக்களுக்கு இடையில் சேர்க்கைகளை உருவாக்குகிறது, அது பயன்படுத்தும் வரிசை இடமிருந்து வலமாக இருக்கும். இது சிக்கலானதல்ல, ஆனால் இது எங்கள் விருப்பமான குனு / லினக்ஸில் மிகவும் பயனுள்ளதாக இருக்கும்.

உதாரணமாக:

$ எதிரொலி {1,2,3} a1 a2 a3

காற்புள்ளிகளுடன் பயன்படுத்தும்போது (,) மதிப்பு a மற்றும் பிரேஸ்களுக்குள் உள்ள மதிப்புகள் இடையே சேர்க்கைகளை உருவாக்குகிறது. விசைகளுக்கு வெளியே எந்த மதிப்பும் இல்லை என்றால், விசையில் உள்ள ஒவ்வொரு மதிப்பிற்கும் ஒரு முறை மட்டுமே இது காண்பிக்கப்படும்.

$ எதிரொலி {a, b, c} abc

அதன் பயன்பாடு சிக்கலானது அல்ல, ஒரு கோப்புறையில் பல கோப்பகங்களை உருவாக்குவது போன்ற பொதுவான எடுத்துக்காட்டுகள் உள்ளன

$ mkdir ~ / வேலைகள் / {ஒன்று, இரண்டு, மூன்று, நான்கு, ஐந்து}

இது வேலைகள் கோப்புறையில் ஐந்து கோப்புறைகளை உருவாக்குகிறது, இது ஒரு நேரத்தில் ஒரு கட்டளையை உள்ளிடுவது போன்றது. 5 கோப்பகங்களை உருவாக்குதல்.

இரண்டு புள்ளிகளால் விரிவாக்கம் உள்ளது .. இது ஆரம்ப மதிப்பிலிருந்து இறுதி மதிப்புக்குச் செல்லும் தொடர் எண்கள் அல்லது எழுத்துக்களை உருவாக்குகிறது, கடித எண்களைப் பயன்படுத்த வேண்டாம்.

$ எதிரொலி {1..5} # சரியானது 1 2 3 4 5 $ எதிரொலி {a..f} # சரியான abcdf $ எதிரொலி {a..5} # தவறான {a..5} # நான் ஒருபோதும் பெறமாட்டேன் என்று நினைக்கிறேன் கடிதத்தில் இந்த நீல நிறத்துடன் பயன்படுத்தப்படுகிறது

ஒரு சுழற்சியை உருவாக்குவதன் மூலம் நாம் நேரத்தை மிச்சப்படுத்தலாம் ஐந்து

# எழுதுவதற்கு பதிலாக $ ((i = 1; i <= 5; i ++)); "என் எண் $ i" ஐ எதிரொலிக்கவும்; முடிந்தது எனது எண் 1 எனது எண் 2 எனது எண் 3 எனது எண் 4 எனது எண் 5 # பிரேஸ் விரிவாக்கத்தைப் பயன்படுத்தி குறியீட்டைச் சேமிக்கவும். $ 1..5 in இல் i க்கு; "என் எண் $ i; செய்தேன் என் எண் 1 எனது எண் 2 எனது எண் 3 எனது எண் 4 எனது எண் 5 # நிச்சயமாக வெளியீடு வேறுபட்டிருந்தாலும் பயன்படுத்த செல்லுபடியாகும். $ எதிரொலி" எனது எண் "{1..5} எனது எண் 1 எனது எண் 2 எனது எண் 3 எனது எண் 4 எனது எண் 5

கருத்து தெளிவாக உள்ளது என்று நான் நினைக்கிறேன், ஹாஹா இப்போது நான் ஒன்றிணைக்கக்கூடிய மற்றும் உள்ளமைக்கப்பட்டதாக மட்டுமே கருத்து தெரிவிப்பேன். இதன் மூலம் நான் என்ன சொல்கிறேன்?
ஒன்று அல்லது அதற்கு மேற்பட்ட விசைகளை நாம் இணைக்க முடியும்

$ எதிரொலி {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

விரிவாக்க விசைகளை விரிவாக்க விசைகளைப் பயன்படுத்தலாம் என்று பலர் நினைக்கும் அளவுக்கு கூடு கட்டுவதன் மூலம்

$ எதிரொலி {a, c {1..3}, d} a c1 c2 c3 d

இறுதியாக இருந்து பாஷ் 4 மதிப்புகளை அதிகரிக்க முடியும்.

$ எதிரொலி {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

இது இன்றையது, எனவே என்னைப் படித்ததற்கு நன்றி

கூடுதல்

உள்ளூர் தொட்டியை உருவாக்குவது எப்படி

நான் ஒரு சொல்லும்போது நான் உள்ளூர் என்பது ஒரு கோப்பகமாகும், அதில் நம் சொந்த ஸ்கிரிப்ட்கள் உள்ளன, அவற்றை ஒரு எளிய கட்டளையாக இயக்க முடியும் ...

இதை அடைவது ஒப்பீட்டளவில் எளிதானது, நீங்கள் செய்ய வேண்டியது முதலில் ஒரு கோப்பகத்தை உருவாக்குவது, அங்கு நாங்கள் ஸ்கிரிப்ட்களை சேமிப்போம்.

mkdir ~ / .bin # இந்த எடுத்துக்காட்டில் அது மறைக்கப்படும்

ஸ்கிரிப்ட்களைச் சேமிக்க இப்போது எங்கள் கோப்புறை உள்ளது, ஆனால் புதிய .பின் பாதையை $ PATH இல் சேர்க்கும் வரை இது இயங்காது
இதற்காக கோப்பு திருத்தப்பட்டது பேஷ்_ சுயவிவரம், மற்றும் வரி சேர்க்கப்பட்டுள்ளது.

ஏற்றுமதி PATH = $ PATH: ~ / .பின்

ஒரு உள்ளூர் தொட்டியை உருவாக்க போதுமான வோய்லா, நிச்சயமாக ஒரு விரைவான ஸ்கிரிப்டை எழுதுவதற்கு ஒரு உதாரணத்திற்கு தேவைப்பட்டால் அது ரூட் அனுமதிகளைக் கேட்கும்.

#! / பின் / பாஷ் எதிரொலி "ஹாய் $ 1, நீங்கள் எப்படி இருக்கிறீர்கள்?"

என்ற பெயரில் சேமிக்கவும் ஹலோ
ஸ்கிரிப்டுக்கு மரணதண்டனை அனுமதி வழங்கப்பட்டுள்ளது, அதை முனையத்திலிருந்து அழைக்க மட்டுமே போதுமானதாக இருக்கும்

$ ஹலோ வாடா # இது ஹலோ வாடா என்ற செய்தியைக் காண்பிக்கும், நீங்கள் எப்படி இருக்கிறீர்கள்?

எனவே இந்த விரைவான தந்திரத்தின் மூலம் உங்கள் ஸ்கிரிப்ட்களை வேகமாக இயக்கலாம்

இன்று நன்றாக இருப்பவர்களுக்கு அவ்வளவுதான்
சோசலிஸ்ட் கட்சி தவறுகளுக்கு மன்னிக்கவும், இருந்தால், என் கண்கள் ஏற்கனவே ஹஹாஹாவை மூடுகின்றன


உங்கள் கருத்தை தெரிவிக்கவும்

உங்கள் மின்னஞ்சல் முகவரி வெளியிடப்பட்ட முடியாது. தேவையான புலங்கள் குறிக்கப்பட்டிருக்கும் *

*

*

  1. தரவுக்கு பொறுப்பு: மிகுவல் ஏஞ்சல் கேடன்
  2. தரவின் நோக்கம்: கட்டுப்பாட்டு ஸ்பேம், கருத்து மேலாண்மை.
  3. சட்டபூர்வமாக்கல்: உங்கள் ஒப்புதல்
  4. தரவின் தொடர்பு: சட்டபூர்வமான கடமையால் தவிர மூன்றாம் தரப்பினருக்கு தரவு தெரிவிக்கப்படாது.
  5. தரவு சேமிப்பு: ஆக்சென்டஸ் நெட்வொர்க்குகள் (EU) வழங்கிய தரவுத்தளம்
  6. உரிமைகள்: எந்த நேரத்திலும் உங்கள் தகவல்களை நீங்கள் கட்டுப்படுத்தலாம், மீட்டெடுக்கலாம் மற்றும் நீக்கலாம்.

  1.   வேட்டைக்காரன் அவர் கூறினார்

    நான் நீண்ட காலமாக பாஷ் சிக்கலில் இருந்தேன், பிரேஸ் விரிவாக்கங்களை நான் புரிந்து கொள்ளவில்லை, நன்றி.

    பாதை தந்திரத்தைப் பற்றி, ஃபெடோரா முன்னிருப்பாக இதுபோன்ற ஒன்றைச் செய்கிறார், ஆனால் "~ /. லோகல் / பின்" இல், நான் ஜெஸ்ஸிக்கு கொண்டு வந்த பாஷ்_ சுயவிவரத்தின் துணுக்கைப் பாருங்கள்.

    PATH = $ PATH: $ HOME / .local / bin: OM HOME / bin
    PATH ஐ ஏற்றுமதி செய்க

    1.    ரிக்கார்டோ அவர் கூறினார்

      எனக்கு சில கவலைகள் உள்ளன:
      1. புள்ளிகளின் விரிவாக்கத்துடன் இரண்டு இடைவெளிகளை எனக்கு எப்படி வழங்குவது; வயது {1..24,55..90} மற்றும் நான் 1 முதல் 24 வயது வரை விரிவுபடுத்தி 55 முதல் XNUMX வரை தொடர்கிறேன். நான் செய்தது போல் அது வேலை செய்யவில்லை. ஏன்?

      2. முதல் மதிப்பு பூஜ்யமாக இருக்க விரும்பினால், எண்ணைத் தொடரவும்:
      wget,: http://manga.favorito / படம் http://manga.favorito/imagen1
      நான் பின்வரும் வழியில் முயற்சித்தேன், ஆனால் wget கிடைக்கவில்லை: http://manga.favorito/imagen{, 1..42 me என்னைப் பொறுத்தவரை, நான் முதல் பெயரை எண் இல்லாமல் விட்டுவிட்டு 1 முதல் 42 வரை எண்ணைத் தொடர வேண்டும், ஆனால் அது அப்படி இல்லை. ஏன்?

    2.    வாடா அவர் கூறினார்

      சில டிஸ்ட்ரோக்கள் ஒரு .பின் வைத்திருந்தீர்கள் அல்லது வைத்திருப்பது சரிதான், ஆனால் எந்தவொரு டிஸ்ட்ரோவிலும் இதைச் செய்ய முடியும் என்பதை எல்லோரும் புரிந்துகொண்டு பார்க்க முடியும்: டி, நிறுத்தியதற்கு நன்றி.

  2.   டெமோ அவர் கூறினார்

    லினக்ஸ் உலகிற்கும் அதன் பாதுகாப்பிற்கும் இந்த அறிவு பங்களிப்புகளுக்கு மிகவும் நல்லது, சில வெள்ளிக்கிழமை ஒரு முனையத்தில் ஒரு பென்ட்ரைவை எவ்வாறு வடிவமைப்பது மற்றும் ஒரு முனையத்தில் எந்த இலவச அமைப்பின் ஐசோ டிவிடி / சிடி படத்தை எரிப்பது என்று படிக்க முடியும் என்று நம்புகிறேன்.

    1.    வாடா அவர் கூறினார்

      உங்கள் வார்த்தைகளுக்கு நன்றி சகோதரர் next அடுத்த வெள்ளிக்கிழமை நான் அந்தப் பதவியைச் செய்வேன் என்று உறுதியளிக்கிறேன். விம் ஹஹாஹாவைத் தனிப்பயனாக்குவது பற்றி நான் ஒன்று இருக்க வேண்டும், ஆனால் அது விம் மட்டுமே அடங்கும் என்று அவர்கள் நினைக்க விரும்பவில்லை.

  3.   எடோர்டோ_அல்லது அவர் கூறினார்

    சிறந்த முனைய கட்டுரை, இந்த பாணியின் பயிற்சிகளை வெளியிடும் பல வலைப்பதிவுகளை எண்ணி, நீண்ட காலமாக நான் படித்த சிறந்தவை. மிக்க நன்றி!!

    1.    வாடா அவர் கூறினார்

      மிக்க நன்றி 😀 நான் தொடர்ந்து வைக்க முயற்சிப்பேன்.

  4.   ஜுவான்லி அவர் கூறினார்

    உள்ளூர் தொட்டியின் சிறந்த உதவிக்குறிப்பு!
    நன்றி!

    1.    வாடா அவர் கூறினார்

      சிறந்த, இது உங்களுக்கு பயனுள்ளதாக இருக்கும், சகோதரரைக் கடந்து சென்றதற்கு மிக்க நன்றி

  5.   கிஸ்கார்ட் அவர் கூறினார்

    மிகவும் நல்லது! இதைப் பற்றி எதுவும் தெரியாது. நன்றி

    1.    வாடா அவர் கூறினார்

      நீங்கள் அதைப் படிக்க நேரம் ஒதுக்கியதற்கு நன்றி சகோதரர்

  6.   ரிக்கார்டோ அவர் கூறினார்

    எனக்கு சில கவலைகள் உள்ளன:
    1. புள்ளிகளின் விரிவாக்கத்துடன் இரண்டு இடைவெளிகளை எனக்கு எப்படி வழங்குவது; வயது {1..24,55..90} மற்றும் நான் 1 முதல் 24 வயது வரை விரிவுபடுத்தி 55 முதல் XNUMX வரை தொடர்கிறேன். நான் செய்தது போல் அது வேலை செய்யவில்லை. ஏன்?

    2. முதல் மதிப்பு பூஜ்யமாக இருக்க விரும்பினால், எண்ணைத் தொடரவும்:
    wget,: http://manga.favorito/imagen http://manga.favorito/imagen1

    நான் பின்வரும் வழியில் முயற்சித்தேன், ஆனால் wget கிடைக்கவில்லை: http://manga.favorito/imagen{, 1..42 me என்னைப் பொறுத்தவரை, நான் முதல் பெயரை எண் இல்லாமல் விட்டுவிட்டு 1 முதல் 42 வரை எண்ணைத் தொடர வேண்டும், ஆனால் அது அப்படி இல்லை. ஏன்?
    * மன்னிக்கவும், நான் முதல் இடுகையை ஒரு பதிலாக வைத்தேன், அது சில பகுதிகளில் தவறு

    1.    வாடா அவர் கூறினார்

      1.- உங்கள் தர்க்கம் தவறானது, நீங்கள் அதைக் கூடுகட்ட வேண்டும் $ echo {{1..24},{55..90}}

      2.- முந்தையதைப் போலவே ... $ echo "URL"{,{1..42}}

      கவலைப்பட வேண்டாம் தம்பி, எங்களுக்கு உதவ நாங்கள் இங்கே இருக்கிறோம்

  7.   jvk85321 அவர் கூறினார்

    For ஐ எதிரொலிப்பதற்கு பதிலாக இது போல் இருக்கும்

    எதிரொலி "எனது எண்" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: a -e '$! N; s / 5 \ n / 5 /; ta'

    ஆனால் நான் printf ஐ விரும்புகிறேன்

    printf "I, I% d \ n" {1..5}

    முக்கிய விரிவாக்கத்தின் அதே கருத்தை பயன்படுத்தவும்

    atte
    jvk85321

    1.    jvk85321 அவர் கூறினார்

      முனைய பெட்டிகளை எப்படி வைப்பது ????

      atte
      jvk85321

  8.   jvk85321 அவர் கூறினார்

    குறியீடு குறிச்சொல் செயல்படுகிறதா என சோதிக்கிறது
    Hehe

    For ஐ எதிரொலிப்பதற்கு பதிலாக இது போல் இருக்கும்

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    முக்கிய விரிவாக்கத்தின் அதே கருத்தை பயன்படுத்தவும்

    atte
    jvk85321

    1.    jvk85321 அவர் கூறினார்

      நான் சில பிழைகள் வைத்திருக்கிறேன், ஆனால் அது வேலை செய்தது

      நான் மாலுகோ வாழ்கிறேன்

      தொந்தரவிற்கு மன்னிக்கவும்

      atte
      jvk85321

      1.    வாடா அவர் கூறினார்

        ஹஹாஹா நீங்களே பதிலளித்தீர்கள், ஆனால் அது லேபிள்களுக்கு இடையில் இருந்தால் இடைவெளிகள் இல்லை ...

        இதற்கு மாற்றாக, இவ்வளவு குழாய் ஹஹாஹாஹா செய்ய தேவையில்லை:
        echo -e "Mi numero "{1..5}"\n\b"

        நேர்மையாக இருக்க வேண்டும் printf என்பது ஸ்கிரிப்ட்களில் உரையை அச்சிடுவதற்கான சிறந்த வழியாகும், இது மிகவும் சிறியது, ஆனால் பாரம்பரியமாக எதிரொலியைப் பயன்படுத்துகிறது.

      2.    வாடா அவர் கூறினார்

        நான் இடங்களை எடுத்துக்கொள்கிறேன்! hahahahaha

        இப்போது பார்ப்போம்

      3.    வாடா அவர் கூறினார்

        ஃபக் இது "ஹாஹாஹா" ஐ விட "" குறியீடு "ஐ விட" "குறைவாக" / குறியீடு "அதிகமாக உள்ளது

      4.    jvk85321 அவர் கூறினார்

        எதிரொலி -e என்பது நிலையானதல்ல, எனவே இது எல்லா கணினிகளிலும் இயங்காது.

        மேலும் குழப்பமாக வெளியே வருகிறது
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        இதனுடன்
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        இரண்டாவது முடிவை சிறப்பாக அளிக்கிறது என்று நான் நினைக்கிறேன், ஹஹாஹா

        atte
        jvk85321

      5.    jvk85321 அவர் கூறினார்

        இந்த லேபிள்கள் ஒரு பம்மர், ஹேஹே, அவை இப்போது செயல்படுகின்றனவா என்று பார்ப்போம்
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        இதனுடன்
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        இரண்டாவது முடிவை சிறப்பாக அளிக்கிறது என்று நான் நினைக்கிறேன், ஹஹாஹா
        atte
        jvk85321

      6.    jvk85321 அவர் கூறினார்

        எப்படியிருந்தாலும், வரிகளுக்கு இடையில் இடைவெளிகளை விட்டு விடுங்கள், அதனால்தான் நான் html, hahahaha ஐ வெறுக்கிறேன்

  9.   ஜோகுயின் அவர் கூறினார்

    அருமை! நான் உங்கள் கால்களை கைதட்டினேன் ஹாஹா

    விசைகள் கூடுகட்டப்படலாம் என்று எனக்குத் தெரியாது, ஏனென்றால் நான் அவற்றைப் பயன்படுத்த முயற்சித்ததில்லை, இது நிறைய குறியீட்டைச் சேமிக்கிறது, மேலும் இது இந்த வழியில் மேலும் படிக்கக்கூடியது. நன்றி!

    1.    வாடா அவர் கூறினார்

      கடந்து சென்ற சகோதரருக்கு நன்றி, இது பயனுள்ள பயன்பாடாக இருந்ததில் மகிழ்ச்சி அடைகிறேன்

      1.    ஜோகுயின் அவர் கூறினார்

        உங்களை வரவேற்கிறோம், யோசனைகளைப் பகிர்ந்து கொள்ளவும் பங்களிக்கவும் நாங்கள் இங்கு வந்துள்ளோம். புரோகிராம் செய்வது எப்படி என்று எனக்குத் தெரியவில்லை, நான் பாஷில் இரண்டு விஷயங்களைச் செய்தேன், இரண்டு இடுகைகளில் நான் செய்த சில ஸ்கிரிப்ட்களை வெளியிட்டேன். இதை அறிவது குறியீட்டைப் புரிந்துகொள்வதை எளிதாக்கும் என்று நான் நினைக்கிறேன்.