금요일 터미널 : Bash [키 확장]

먼저 죄송합니다. 지난 금요일에 글을 쓸 수 없었기 때문에 오늘은 잃어버린 날을 보충하기 위해 추가로 추가하겠습니다. 🙂

중괄호 확장

스페인어에서 키 확장은 나에게 영감을받은 기능인 것 같습니다. C 쉘, 이렇게하면 중괄호 안에 입력 된 문자 간의 조합이 생성되며 사용되는 순서는 왼쪽에서 오른쪽입니다. 전혀 복잡하지는 않지만 GNU / Linux 투어에서 매우 유용 할 옵션입니다.

예 :

$ 에코 a {1,2,3} a1 a2 a3

쉼표와 함께 사용하는 경우 (,) 값 a와 중괄호 안의 값 사이의 조합을 생성합니다. 키 외부에 값이 없으면 키에 포함 된 각 값을 한 번만 표시합니다.

$ echo {a, b, c} abc

그것의 사용은 전혀 복잡하지 않으며 폴더에 많은 디렉토리를 만드는 것과 같은 다른 일반적인 예가 있습니다.

$ mkdir ~ / Jobs / {one, two, three, four, five}

그러면 작업 폴더 내에 5 개의 폴더가 만들어지며 한 번에 하나의 명령을 입력하는 것과 같습니다. XNUMX 개의 디렉토리 생성.

XNUMX 점 확장있어 .. 이렇게하면 초기 값에서 최종 값으로 이동하는 일련의 숫자 또는 문자가 생성되며 문자 숫자를 사용하지 않습니다.

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} # 잘못된 {a..5} # 나는 절대 못받을 것 같아요 이 파란색 문자에 사용

주기를 만들어 시간을 절약 할 수 있습니다. for

# $ for ((i = 1; i <= 5; i ++)); do echo "내 번호 $ i"; done 마이 넘버 1 마이 넘버 2 마이 넘버 3 마이 넘버 4 마이 넘버 5 # 중괄호 확장을 사용하여 코드를 저장합니다. {1..5}에서 i에 대한 $; do echo "마이 넘버 $ i; 완료 마이 넘버 1 마이 넘버 2 마이 넘버 3 마이 넘버 4 마이 넘버 5 # 출력은 다르지만 사용은 물론 유효합니다. $ echo"마이 넘버 "{1..5} 마이 넘버 1 마이 넘버 2 마이 넘버 3 마이 넘버 4 마이 넘버 5

글쎄요 컨셉이 분명하다고 생각 해요, 하하 이제는 결합이 가능하고 중첩된다는 점만 언급하겠습니다.이게 무슨 뜻일까요?
결합 가능으로 하나 이상의 키를 결합 할 수 있습니다.

$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

많은 사람들이 상상하는 중첩을 통해 확장 키 내에서 확장 키를 사용할 수 있습니다.

$ echo {a, c {1..3}, d} a c1 c2 c3 d

그리고 마지막으로 배쉬 노팅 값을 늘릴 수 있습니다.

$ 에코 {0..20..2} 0 2 4 6 8 10 12 14 16

오늘은이게 다야, 저를 읽어 주셔서 감사합니다 🙂

여분의

로컬 저장소를 만드는 방법

내가 말할 때 큰 상자 local 나는 우리가 우리 자신의 스크립트를 가지고있는 디렉토리를 의미하며 간단한 명령으로 실행할 수 있습니다.

이를 달성하는 것은 상대적으로 쉽습니다. 가장 먼저해야 할 일은 스크립트를 저장할 디렉토리를 만드는 것입니다.

mkdir ~ / .bin #이 예에서는 숨겨집니다.

이제 스크립트를 저장할 폴더가 있지만 새 .bin의 경로를 $ PATH에 추가 할 때까지 작동하지 않습니다.
이를 위해 파일이 편집됩니다. bash_profile, 라인이 추가됩니다.

내보내기 경로 = $ 경로 : ~ / .bin

그리고 로컬 저장소를 생성하기에 충분합니다. 물론 필요한 경우 빠른 스크립트를 작성하기 위해 루트 권한을 요청합니다.

#! / bin / bash echo "안녕하세요 $ 1, 어떻게 지내세요?"

이름으로 저장 안녕하세요
스크립트에는 실행 권한이 주어지며 터미널에서 호출하는 것으로 만 충분합니다.

$ hello wada # Hello wada, 어떻게 지내세요?

따라서이 빠른 트릭으로 스크립트를 더 빠르게 실행할 수 있습니다.

오늘 건강한 사람들을위한 것입니다 🙂
추신 : 실수가 있으면 실례합니다. 이미 눈을 감고 있습니다 하하하 😀


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   사냥꾼

    나는 오랫동안 bash 문제에 있었고 중괄호 확장을 이해하지 못했습니다. 감사합니다.

    경로 트릭에서 Fedora는 기본적으로 이와 같은 작업을 수행하지만 "~ / .local / bin"에서 Jessie에게 가져온 bash_profile의 스 니펫을보십시오.

    경로 = $ 경로 : $ HOME / .local / bin : $ HOME / bin
    내보내기 경로

    1.    리카르도

      몇 가지 우려 사항이 있습니다.
      1. 그가 나에게 포인트로 확장하는 두 개의 인터벌을주게하려면 어떻게해야하나요? 연령은 {1..24,55..90}이며 1 세에서 24 세로 확장하고 55 세에서 XNUMX 세로 계속합니다. 내가 한 것처럼 작동하지 않았습니다. 왜?

      2. 첫 번째 값이 null이되도록하고 번호 매기기를 계속하려면 :
      wget : http://manga.favorito /영상 http://manga.favorito/imagen1
      나는 다음과 같은 방법을 시도했지만 wget은 얻지 못했습니다. http://manga.favorito/imagen{, 1..42} 내 말에 따르면 이름은 숫자없이 그대로두고 1부터 42까지 계속해서 번호를 매겨 야하는데 그렇게되지 않았다. 왜?

    2.    와다

      당신은 맞습니다. 일부 배포판에는 .bin이 있거나 가지고 있지만 모든 배포판에서 가능하다는 것을 모든 사람이 이해하고 볼 수 있습니다. D, 들러 주셔서 감사합니다.

  2.   데모

    리눅스 세계와 그 보안에 대한 지식의 공헌에 매우 좋습니다. 금요일에 저는 터미널에서 펜 드라이브를 포맷하고 터미널에서 무료 시스템의 iso 이미지 DVD / CD를 굽는 방법을 읽을 수 있기를 바랍니다.

    1.    와다

      형제 님의 말씀에 감사드립니다 😀 다음 주 금요일에 그 게시물을 작성하겠다고 약속합니다. 그리고 저는 Vim hahaha를 커스터마이징하는 것에 대해 하나해야하지만 그들이 Vim 만 다룰 것이라고 생각하는 것을 원하지 않았습니다.

  3.   edordo_or

    이 스타일의 튜토리얼을 게시하는 여러 블로그를 세는 우수한 터미널 기사, 내가 오랫동안 읽은 최고의 기사. 감사합니다 !!

    1.    와다

      감사합니다 😀 계속 노력하겠습니다.

  4.   후안리

    지역 쓰레기통의 훌륭한 팁!
    안녕하십니까!

    1.    와다

      훌륭합니다, 유용합니다. 형제를 지나쳐 주셔서 대단히 감사합니다 😀

  5.   Giskard

    아주 좋아요! 이것에 대해 전혀 모른다. 감사합니다 🙂

    1.    와다

      시간을내어 읽어 주셔서 감사합니다 😀

  6.   리카르도

    몇 가지 우려 사항이 있습니다.
    1. 그가 나에게 포인트로 확장하는 두 개의 인터벌을주게하려면 어떻게해야하나요? 연령은 {1..24,55..90}이며 1 세에서 24 세로 확장하고 55 세에서 XNUMX 세로 계속합니다. 내가 한 것처럼 작동하지 않았습니다. 왜?

    2. 첫 번째 값이 null이되도록하고 번호 매기기를 계속하려면 :
    wget : http://manga.favorito/imagen http://manga.favorito/imagen1

    나는 다음과 같은 방법을 시도했지만 wget은 얻지 못했습니다. http://manga.favorito/imagen{, 1..42} 내 말에 따르면 이름은 숫자없이 그대로두고 1부터 42까지 계속해서 번호를 매겨 야하는데 그렇게되지 않았다. 왜?
    * 죄송하지만 첫 번째 게시물을 답변으로 썼는데 일부 부분이 잘못되었습니다

    1.    와다

      1.- 당신의 논리가 잘못되었습니다. $ echo {{1..24},{55..90}}

      2.- 이전 것과 동일 ... $ echo "URL"{,{1..42}}

      걱정하지 마세요, 우리는 우리를 돕기 위해 여기 있습니다 🙂

  7.   jvk85321

    for를 echo로 바꾸려면 다음과 같이 보일 것입니다.

    echo "마이 넘버"{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

    코드 태그가 작동하는지 테스트
    도니는 다르게

    for를 echo로 바꾸려면 다음과 같이 보일 것입니다.

    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

      몇 가지 버그가 남아 있지만 작동했습니다.

      나는 살아있다 maluco

      귀찮게해서 미안해

      atte
      jvk85321

      1.    와다

        하하하 넌 스스로 대답했지만 레이블 사이라면 공백 없음 ...

        그리고 for의 대체에 대해서는 다음과 같이 파이프 hahahaha를 너무 많이 할 필요가 없습니다.
        echo -e "Mi numero "{1..5}"\n\b"

        솔직히 말해서 printf는 스크립트에서 텍스트를 인쇄하는 가장 좋은 방법이지만 이식성이 더 좋지만 전통적으로 에코를 사용합니다.

      2.    와다

        나는 공간을 차지한다! 하하 하하하

        지금 보자 😀

      3.    와다

        젠장 "보다 작다"코드 "보다 큼" "보다 작다"/ 코드 "보다 큼"hahahaha

      4.    jvk85321

        echo -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 싫어 하 하하하

  9.   호아킨

    우수한! 발을 박수하 하하하

    키가 중첩 될 수 있다는 것을 몰랐습니다. 키를 사용해 본 적이 없기 때문에 실제로 많은 코드를 절약하고이 방식으로 더 읽기 쉽습니다. 감사합니다!

    1.    와다

      형을 지나쳐 주셔서 감사합니다.

      1.    호아킨

        천만에요, 그것이 우리가 아이디어를 공유하고 기여하기 위해 여기에있는 것입니다. 프로그래밍 방법을 모르겠습니다. Bash에서 몇 가지 작업을 수행했으며 두 개의 게시물에 제가 한 스크립트를 게시했습니다. 이것을 알면 코드를 더 쉽게 이해할 수 있다고 생각합니다.