AskUbuntu에서는 그 주위에 몇 가지 명령이 매우 복잡해 보이고 많은 기호가 있습니다. 이 명령이 어떻게 구성되어 있는지 더 잘 이해하기 위해 기호의 의미를 알고 싶습니다.
예를 들면 다음과 같습니다.
find ~/ -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;
또는 더 복잡한 :
echo -e "\e[${i#*=}m$( x=${i%=*}; [ "${!x}" ] && echo "${!x}" || echo "$x" )\e[m"
나는 아주 잘하는 추가 매개 변수를 이해하고 -c
, --debug
주요 Section 명령에 어떤 효과를 가지고있다. 이것의 의미는 거의 모든 경우에서 man
페이지 에서 찾을 수 있으므로 실제로 내가 원하는 것은 아닙니다.
내가 제시 한 예를 설명하는 대신 답변에서 상징이 구체적으로 무엇을하는지 정의하십시오. 다음과 같이 보일 수 있습니다.
" means 'argument': the main command uses anything within these symbols as its source
^ is used for ...
# is used for ...
미리 감사드립니다
답변
보기 배쉬 참조 설명서 라는 섹션 쉘 작동 과 고급 Bash 스크립팅 가이드 3 장 (특수 문자)를 .
나는 우분투 / 리눅스에서 쉘 스크립팅에 대해 새로운 것을 배울 필요가있는 사람들을 언제든지 참조합니다.
ABS 3 장을 가장 쉽게 탐색 할 수 있다고 생각합니다. 모든 기호는 페이지의 가장 왼쪽에 표시되며 바로 아래에 설명이 있습니다.
답변
불행히도 “기호”는 어떤 명령을 읽고 있는지에 따라 다른 의미를 가질 수 있으므로 매뉴얼 페이지로 이동해야합니다.
예를 들어 첫 번째 명령에서 {} 및 \; find 명령 (man find)에 따라 다릅니다. sed에 대한 인수에서 따옴표의 의미는 sed 또는 bash에 의존합니다 (인용 매개 변수이므로 잠재적으로 쉘일 수 있음). ~ /는 분명히 bash 패턴 확장입니다.
두 번째 복잡한 명령의 경우 대부분 에코를 처리하므로 bash의 맨 페이지에서 대부분의 정보를 찾을 수 있습니다.
이에 대한 귀하의 의견에 답하기 위해, 재 지정 문자> <| 파일에서 파일로 그리고 파일로 파이프하고 (기호보다 크거나 작은), 명령의 출력을 다른 입력 (파이프 |)과 연결하는 데 사용됩니다. I / O 리디렉션에 대한 유용한 자습서를 보려면 여기 를 참조 하십시오 . 이것은 Unix 쉘 및 도구 세트의 매우 강력한 디자인 기능입니다.
답변
파일에 끝나는 제 1 회 하나 개의 검색 .c
디렉토리 내에서 ~/
와 exec
백인 군대가 sed
나오지도 (유선형 편집기) s
에 대한 earches를 cybernetnews
하고로 변경됩니다 cybernet
.
두 번째 것은 나를 회피합니다 … 실행시 빈 결과를 보여줍니다.
답변
터미널 명령을 배우기 위해 찾은 최고의 리소스는 LinuxCommand 이며 사용 가능한 가장 많이 사용되는 명령에 대한 자세한 설명을 제공합니다.
답변
복잡한 명령을 붙여 넣을 때 기호의 전체 의미를 말하기는 어렵습니다.
특히 에코.
-e에 대해서는 man echo를 참조하십시오. 이스케이프를 활성화하므로 \ e가 늦을수록 이스케이프됩니다.
다른 기호의 대부분은 문자열 조작입니다.
문자열 “foo”를 포함하는 i 변수가 있다고 가정하십시오.
i=foo;echo $i
foo
그러나 변수 $ i가 문자열의 일부인 경우 더 복잡해집니다.
echo $ibar # Note: no output
echo ${i}bar # we have output
foobar
이제 문자열도 조작 할 수 있고 일부만 인쇄 할 수 있습니다
당신의 경우
$ {i # * =} = print $ i, *와 = 사이의 최단 일치를 제거하지만 * 자체는 와일드 카드입니다.
echo ${i#o}
foo
echo ${i#*o}
o
http://tldp.org/LDP/abs/html/string-manipulation.html을 참조하십시오
다음으로 우리는 서브 쉘 (x …)을 쳤다
Bash는 서브 쉘에서 명령을 처리하고 명령의 출력을 리턴합니다.
x = (i의 하위 문자열); 계속하다
이제 [ “$ {! x}”] 테스트가 진행되었습니다.
참조 : http://tldp.org/LDP/abs/html/testconstructs.html
그리고 내가 더 이상 말할 수없는 곳입니다.
bash에서 $ {! x}는 빈 문자열이됩니다. && == 논리 및 || 논리적이거나
{빈 문자열} 테스트 및 빈 문자열 에코 또는 에코 x
더 많은 구문을 제공해야하지만이 에코가 어딘가에 출력되는 것으로 보입니다.
다시 []는 테스트이며, 우리는 처음에 [를 탈출했습니다.
에코가하는 일에 대해서만 설명 할 수 있습니다.
터미널에서 echo 명령을 입력 할 때 출력이없는 이유는 코드 스 니핏이므로 기본적으로 x 또는 i가 정의되어 있지 않으므로 모든 출력이 비어 있습니다.