«command-substitution» 태그된 질문

쉘 명령 대체 (예 : $ (command) 또는`command`), 메커니즘, 올바른 구문 등에 대한 질문. 앨리어싱과 혼동하지 마십시오.

5
공백이있는 생성 된 파일 이름 목록을 인수 목록으로 사용
에 의해 수집 된 파일 이름 목록이있는 스크립트를 호출하려고합니다 find. 다음과 같은 특별한 내용은 없습니다. $ myscript `find . -name something.txt` 문제는 일부 경로 이름에 공백이 포함되어 있으므로 인수 확장시 두 개의 유효하지 않은 이름으로 나뉩니다. 일반적으로 이름을 따옴표로 묶을 것이지만 여기에 인용 부호 확장으로 삽입됩니다. find각 파일 이름 의 …

7
에코와 고양이의 실행 시간이 왜 다른가요?
이 질문에 대답 하면 또 다른 질문이 생겼습니다. 다음 스크립트는 같은 일을하고 두 번째 스크립트는 훨씬 빨라야한다고 생각했습니다. 첫 번째 스크립트는 cat반복해서 파일을 열어야하지만 두 번째 스크립트는 파일 만 열어야 하기 때문입니다. 한 번만 변수를 에코합니다. (올바른 코드는 업데이트 섹션을 참조하십시오.) 먼저: #!/bin/sh for j in seq 10; do cat …


3
"-o errtrace"를 사용하여 명령 대체에서 트래핑 오류 (예 : set -E)
이 참조 설명서 에 따르면 : -E (또한 -o errtrace) 설정된 경우 ERR의 트랩은 쉘 기능, 명령 대체 및 서브 쉘 환경에서 실행되는 명령에 의해 상속됩니다. 이러한 경우 ERR 트랩은 일반적으로 상속되지 않습니다. 그러나 다음과 같이 작동하지 않으므로 잘못 해석해야합니다. #!/usr/bin/env bash # -*- bash -*- set -e -o pipefail …

5
목록에서 grep 파일
몇 백 개의 파일 목록에 대해 grep을 실행하려고합니다. $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php 그러나 파일에서 찾은 문자열을 파악하고 있지만 다음은 파일을 검색하지 않습니다. $ grep -i 'foo' <(cat files.txt) $ grep -i 'foo' admin.php The foo was found 파일 -f에서 패턴 을 읽을 플래그에 익숙 합니다. …

2
서브 쉘에 중첩 된 따옴표
서브 쉘 출력을 캡슐화하기 위해 따옴표를 사용해야한다고 가정 해보십시오. DATA="$(cat file.hex | xxd -r)" 그러나 나는 이런 종류의 물건을 중첩시켜야합니다 : DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" 작은 따옴표는 그 안에있는 변수를 확장하지 않기 때문에 사용할 수 없습니다. 이스케이프 따옴표는 수동 텍스트로 취급되기 때문에 작동하지 않습니다. …


3
다 변수 For 루프
for루프에서 정수뿐만 아니라 여러 변수를 지정하는 방법이 bash있습니까? 작업해야 할 임의의 텍스트가 포함 된 2 개의 파일이있을 수 있습니다. 기능적으로 필요한 것은 다음과 같습니다. for i in $(cat file1) and j in $(cat file2); do command $i $j; done 어떤 아이디어?

3
명령 대체를 통해 다른 명령에 인수를 생성하는 방법
:에 이어 쉘 명령어 치환에서 예기치 않은 동작 나는 거대한 인수 목록을 취할 수있는 명령을 가지고 있는데, 그중 일부는 합법적으로 공백을 포함 할 수 있습니다 (아마도 다른 것들) 나는 따옴표로 나를 위해 그러한 인수를 생성 할 수있는 스크립트를 작성했지만 출력을 복사하여 붙여 넣어야합니다. ./somecommand <output on stdout with quoting> ./othercommand …

4
Bash의 파일 읽기 명령 대체 이해
Bash가 정확히 다음 줄을 어떻게 처리하는지 이해하려고합니다. $(< "$FILE") Bash 매뉴얼 페이지에 따르면 다음과 같습니다. $(cat "$FILE") 이 두 번째 줄에 대한 추론을 따를 수 있습니다. Bash는에서 변수 확장을 수행하고 $FILE, 명령 대체를 입력하고, 값을 $FILEto에 전달하고 cat, cat을 내용 $FILE을 표준 출력으로 출력하고, 전체 행을 명령 내부의 표준 출력으로 …

2
할당은 명령 대체가있는 경우를 제외하고 종료 상태의 명령과 비슷합니까?
POSIX 쉘에서 다음 예제 및 해당 출력을 참조하십시오. false;echo $?또는 false || echo 1:1 false;foo="bar";echo $?또는 foo="bar" && echo 0:0 foo=$(false);echo $?또는 foo=$(false) || echo 1:1 foo=$(true);echo $?또는 foo=$(true) && echo 0:0 /programming/6834487/what-is-the-variable-in-shell-scripting 에서 가장 투표가 많은 답변에서 언급했듯이 : $? 마지막으로 실행 된 명령의 반환 값을 찾는 데 사용됩니다. …

2
변수 할당의 반환 상태는 어떻게 결정됩니까?
다음과 같은 스크립트에서 구문을 보았습니다. if somevar="$(somecommand 2>/dev/null)"; then ... fi 이것은 어딘가에 기록되어 있습니까? 변수의 반환 상태는 어떻게 결정되며 명령 대체와 어떤 관련이 있습니까? (예를 들어, if echo "$(somecommand 2>/dev/null)"; then? 와 동일한 결과를 얻을 수 있습니까?)

3
변수 대체에 명령 대체를 중첩시킬 수 있습니까?
명령을 통해 액세스하는 특정 문자열에 변수 대체를 사용하고 싶습니다. 예를 들어 클립 보드에 무언가를 복사하면 다음과 같이 액세스 할 수 있습니다. $ xclip -o -selection clipboard Here's a string I just copied. 변수에 변수를 할당하면 변수를 대체 할 수 있습니다. $ var=$(xclip -o -selection clipboard) $ echo $var Here's a …

1
서브 쉘을 인용하고 결과를 에코로 전달할 때 줄 바꿈이없는 이유는 무엇입니까?
ls | grep pnggrep의 출력을 수행 하면 다음과 같습니다. 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (파일 이름, 줄 바꿈, 파일 이름, 줄 바꿈) 그런 다음 echo $(ls | grep png)출력합니다. 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (파일 이름, 단어 분할, 파일 이름, 줄 바꿈에서 !! 에코에서 !!) 괜찮습니다. 그러나 단어 분리를 방지하기 위해이 작업을 수행 echo "$(ls | …

3
bash 명령 대체 출력이 이스케이프되는 것을 방지하는 방법은 무엇입니까?
bash 스크립트에서 명령 대체를 사용하여 변수를 기반으로 리디렉션 기호를 출력하려고합니다. IS_VERBOSE=false curl $BLAH $( $IS_VERBOSE && echo '-i' || echo '> /dev/null' ) 즉, 장황한 경우 -i스위치를 추가하고 그렇지 않으면 stdout에서 모든 것을 버립니다. 문제는 IS_VERBOSEfalse 일 때 내 명령이된다는 것입니다. curl $BLAH \> /dev/null 보다 일반적으로, 명령 대체는 문자 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.