한 줄 명령으로 단일 플래그를 주석 처리하고 싶습니다. Bash는 from # till end-of-line
의견 만있는 것 같습니다 . 나는 다음과 같은 트릭을보고있다.
ls -l $([ ] && -F is turned off) -a /etc
추악하지만 아무것도 아닌 것보다 낫습니다. 더 좋은 방법이 있습니까?
다음은 작동하는 것 같지만 휴대용인지 확실하지 않습니다.
ls -l `# -F is turned off` -a /etc
한 줄 명령으로 단일 플래그를 주석 처리하고 싶습니다. Bash는 from # till end-of-line
의견 만있는 것 같습니다 . 나는 다음과 같은 트릭을보고있다.
ls -l $([ ] && -F is turned off) -a /etc
추악하지만 아무것도 아닌 것보다 낫습니다. 더 좋은 방법이 있습니까?
다음은 작동하는 것 같지만 휴대용인지 확실하지 않습니다.
ls -l `# -F is turned off` -a /etc
답변:
내가 선호하는 것은 :
이것은 약간의 오버 헤드가 있지만 기술적으로 귀하의 질문에 대답합니다.
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
$(#comment)
하지만 작동하지 않습니다.
)
주석 자체의 일부로 간주합니다 . bash의 대부분의 문제는 이전 버전과의 레트로 호환성으로 인한 것이며, 가장 일반적인 전략 중 하나는 가장 오래된 솔루션을 사용하는 것입니다.
true && `# comment` && true
. 유효한 표현입니다. 실제 주석은 다음과 같은 내용을 생성합니다. syntax error near unexpected token
&& '`
줄을 복사하고 원래 버전을 주석 처리하는 것이 가장 쉽고 읽기 쉽습니다.
#Old version of ls:
#ls -l $([ ] && -F is turned off) -a /etc
ls -l -a /etc
$(: ...)
조금 추악하지만 여전히 좋지는 않습니다.
$(: ...)
구문이 실제로 주석을 포함하는 것을 허용하지 않는 것 같습니다 echo "foo" `# comment` "bar"
. 두 번째 백틱에서 주석을 종료 하지만 등가물 echo "foo" $(: # comment) "bar"
은 뒤에 구문 분석되지 않습니다 #
.
다음은 여러 파이프 명령 사이의 인라인 주석에 대한 솔루션입니다.
주석 처리되지 않은 코드의 예 :
#!/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 $ {1 # -F가 꺼져 있습니다} -a / etc
${name:=comment}
안전을 위해 사용하십시오 .
와 같은 명령의 일부를 비활성화하기 위해 경로에 a && b
있는 빈 스크립트 x
를 만들었 으므로 다음과 같은 작업을 수행 할 수 있습니다.
mvn install && runProject
내가 빌드해야 할 때
x mvn install && runProject
사용하지 않을 때 (사용 Ctrl + A및 Ctrl + E시작과 끝으로 이동).
의견에서 언급했듯이 다른 방법은 Bash 내장 :
입니다 x
.
$ : Hello world, how are you? && echo "Fine."
Fine.
:
:string; of; commands; : disabled; enabled;
주석을 작성할 가치가 있다면, 줄의 끝이나 그 자체의 줄로 갈 수 있습니다. 어떤 언어로든 주석 앞뒤에 코드가 포함 된 라인 내 주석이 필요한 경우는 거의 없습니다.
아, '{comments}'를 사용하는 SQL의 방언 인 예외가 하나 있습니다. 때때로, 나는 쓸 것이다 :
CREATE UNIQUE INDEX u1_table ON Table(...);
CREATE {DUPS} INDEX d1_table ON Table(...);
그러나 그것은 심지어 스트레칭입니다.
#comment
트릭도 여기에 언급 : stackoverflow.com/questions/9522631/...을