programing

Bash에 대한 인라인 댓글?

bestprogram 2023. 4. 27. 22:52

Bash에 대한 인라인 댓글?

한 줄 명령어로 하나의 플래그를 주석으로 달 수 있으면 좋겠습니다.Bash는 단지 가지고 있는 것처럼 보입니다.from # till end-of-line평.저는 다음과 같은 속임수를 보고 있습니다.

ls -l $([ ] && -F is turned off) -a /etc

못생겼지만 없는 것보다는 낫습니다.더 좋은 방법이 있습니까?

다음 항목이 작동하는 것처럼 보이지만 휴대용인지는 잘 모르겠습니다.

ls -l `# -F is turned off` -a /etc

선호하는 항목:

Bash 스크립트로 주석 달기

이것은 약간의 간접비가 있겠지만, 기술적으로 그것은 당신의 질문에 대답합니다.

echo abc `#put your comment here` \
     def `#another chance for a comment` \
     xyz etc

특히 파이프라인의 경우 오버헤드가 없는 보다 깨끗한 솔루션이 있습니다.

echo abc |        # normal comment OK here
     tr a-z A-Z | # another normal comment OK here
     sort |       # the pipelines are automatically continued
     uniq         # final comment

다중 줄 명령에 줄 주석을 다는 방법

저는 그냥 줄을 복사하고 원본 버전을 주석 처리하는 것이 가장 쉽고 가장 읽기 쉽다고 생각합니다.

#Old version of ls:
#ls -l $([ ] && -F is turned off) -a /etc
ls -l -a /etc

$(: ...)조금 덜 못생겼지만, 여전히 좋지 않습니다.

다음은 다중 파이프 명령 간의 인라인 주석에 대한 솔루션입니다.

주석이 없는 코드의 예:

    #!/bin/sh
    cat input.txt \
    | grep something \
    | sort -r

파이프 주석에 대한 솔루션(도우미 함수 사용):

    #!/bin/sh
    pipe_comment() {
        cat - 
    }
    cat input.txt \
    | pipe_comment "filter down to lines that contain the word: something" \
    | grep something \
    | pipe_comment "reverse sort what is left" \
    | sort -r

또는 원하는 경우 도우미 기능이 없는 동일한 솔루션이 있지만 좀 더 혼란스럽습니다.

    #!/bin/sh
    cat input.txt \
    | cat - `: filter down to lines that contain the word: something` \
    | grep something \
    | cat - `: reverse sort what is left` \
    | sort -r

대부분의 명령에서는 임의의 순서로 인수를 지정할 수 있습니다.주석이 달린 플래그를 줄 끝으로 이동합니다.

ls -l -a /etc # -F is turned off

그런 다음 다시 켜려면 주석을 제거하고 텍스트를 제거합니다.

ls -l -a /etc -F

변수에 저장하는 것은 어떻습니까?

#extraargs=-F
ls -l $extraargs -a /etc

변수가 비어 있다는 것을 알고 있는 경우 이를 주석으로 사용할 수 있습니다.물론 비어 있지 않으면 명령어가 엉망이 됩니다.

ls -l ${1# -F 꺼짐} -a /etc

10.2. 파라미터 대체

다음과 같은 명령의 일부를 비활성화하는 경우a && b빈 스크립트를 만들었을 뿐입니다.x길 위에 있으니 다음과 같은 일을 할 수 있습니다.

mvn install && runProject

내가 건축해야 할 때, 그리고.

x mvn install && runProject

(및 을 사용하여 시작 및 끝으로 이동)하지 않을 때.

코멘트에서 언급한 바와 같이, 이를 위한 또 다른 방법은 Bash 내장형입니다.:대신에x:

$  : Hello world, how are you? && echo "Fine."
Fine.

는 것 같습니다.$(...)에서 살아남지 못합니다.ps -ef.

제 시나리오는 바로 그 프로세스를 식별하는 데 사용할 수 있는 더미 파라미터를 갖는 것입니다.저는 주로 이 방법을 사용하지만, 그 방법이 어디에서나 가능한 것은 아닙니다.예를들면,python program.py는 것과 같은

mkdir -p MyProgramTag;python MyProgramTag/../program.py

MyProgramTag시작된 프로세스를 식별하기 위한 태그입니다.

언급URL : https://stackoverflow.com/questions/2524367/inline-comments-for-bash