«command-substitution» 태그된 질문

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


3
Bash에서 $ (명령 대체) 내 인용
내 Bash 환경에서 공백을 포함하는 변수를 사용하고 이러한 변수를 명령 대체 내에서 사용합니다. 불행히도 SE에서 답을 찾을 수 없습니다. 변수를 인용하는 올바른 방법은 무엇입니까? 이것들이 중첩되어 있으면 어떻게해야합니까? DIRNAME=$(dirname "$FILE") 또는 대체 외부에서 인용합니까? DIRNAME="$(dirname $FILE)" 아니면 둘다? DIRNAME="$(dirname "$FILE")" 또는 백틱을 사용합니까? DIRNAME=`dirname "$FILE"` 이것을하는 올바른 방법은 무엇입니까? 따옴표가 …

7
이전 명령의 출력을 인수로 다음에 전달
데이터를 stdout ( command1 -p=aaa -v=bbb -i=4)으로 출력하는 명령이 있습니다. 출력 라인은 다음 값을 가질 수 있습니다. rate (10%) - name: value - 10Kbps 그 '속도'를 저장하기 위해 출력을 grep하고 싶습니다 (파이프가 여기서 유용 할 것입니다). 마지막으로 두 번째 명령의 매개 변수 값이 되길 원합니다 (말하자 command2 -t=${rate}). 내 편이 …

6
cron 탭 작업 내에서`date`를 어떻게 실행할 수 있습니까?
로그 파일 이름에 현재 시간이있는 cron 스크립트에 대한 로그 파일을 만들고 싶습니다. 이것은 내가 사용하려고 한 명령입니다. 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log 불행히도이 메시지가 실행될 때이 메시지가 나타납니다. /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: …


3
백틱 이해하기 (`)
나는 명령을 시도하고있다 $ b=5; echo `$b`; -bash: 5: command not found 그러나 예상대로 5를 인쇄하지 않습니다. 내가 여기서 무엇을 놓치고 있습니까? `(backquote / backtick)는 명령에서 무엇을 의미합니까? `내 명령 을 평가하고 출력으로 바꿉니다.

6
명령 대체 : 줄 바꿈에서 분할하지만 공백은 아닙니다.
나는이 문제를 여러 가지 방법으로 해결할 수 있다는 것을 알고 있지만 bash 내장 만 사용하여 해결할 수있는 방법이 있는지, 그렇지 않은 경우 가장 효율적인 방법은 무엇인지 궁금합니다. 내용이 같은 파일이 있습니다 AAA B C DDD FOO BAR 즉, 여러 줄이 있고 각 줄에는 공백이 있거나 없을 수 있습니다. 나는 같은 …


4
`curl의 차이점은 무엇입니까 | sh`와`sh -c“$ (curl)”`?
이 질문은 Unix & Linux Stack Exchange에서 응답 할 수 있기 때문에 서버 결함에서 마이그레이션 되었습니다. 2 년 전에 마이그레이션 되었습니다 . Docker의 쉬운 설치 방법 중 하나는 다음과 같습니다. curl -sSL https://get.docker.com/ | sh 그러나 도커 예제를 사용하여 다음과 같은 것을 보았습니다. sh -c "$(curl -sSL https://get.docker.com/)" 그것들은 기능적으로 …

1
백그라운드 프로세스가 끝날 때까지 함수가 반환되지 않는 이유는 무엇입니까?
이 스크립트를 고려하십시오. #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" 스크립트는 백그라운드 프로세스 인 경우에도 리프 패드 프로세스가 종료 될 때까지 닫는 중괄호를지나 계속 진행되지 않습니다. 왜 이런거야? 함수에서 백그라운드 프로세스를 시작할 수 있습니까?

1
POSIX는 여기에 인용 된 명령 대체 문서에 무엇이 필요합니까?
에서 이 질문에 누군가가 사용하여 문제를보고 여기에 문서를 내부 인용 구분 단어로 $(...)명령 치환 백 슬래시, \문서 트리거 내부의 줄의 끝에 줄 바꿈에 합류 행 계속이 여기에 같은 동안 문서 외부에서 예상대로 명령 치환 작업을 . 다음은 간단한 예제 문서입니다. cat <<'EOT' abc ` def ghi \ jkl EOT 여기에는 …

2
투표율이 높은 원 라이너에 중첩 된 큰 따옴표
3.5K 이상의 투표가 포함 된 StackOverflow 답변DIR 에는 현재 bash 스크립트의 디렉토리에 할당 할 수 있는 이 한 줄짜리 기능이 있습니다. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 중첩 된 큰 따옴표에 의아해합니다. 내가 알 수있는 한 다음 조각은 큰 따옴표로 묶습니다. "$( cd " "${BASH_SOURCE[0]}" " && …


1
$ (command $ arg)를 인용하는 올바른 방법은 무엇입니까?
몇 년 동안 저를 괴롭혔던이 수수께끼를 풀어야 할 때가되었습니다 ... 나는 때때로 이것을 만나고 이것이 갈 길이라고 생각했다. $(comm "$(arg)") 그리고 내 견해는 경험에 의해 강력하게 뒷받침된다고 생각했습니다. 그러나 나는 더 이상 확신하지 못한다. Shellcheck 도 마음을 사로 잡을 수 없습니다. 둘 다입니다. "$(dirname $0)"/stop.bash ^-- SC2086: Double quote to …

3
새로운 개발을 대체하기 위해`…`대체를 사용하거나 가르치는 이유가 있습니까?
오류가 발생하기 쉬운 중첩 및 이스케이프 구문이 더 쉽고 적기 때문에 $(...)이전 명령 보다 더 현대적인 명령 대체 구문이 선호 된다는 것을 이해하고 `있습니다. 또한 /bin/sh현대적인 사용에서 대부분의 스타일 쉘은 $(…)다음을 지원 하는 것으로 보입니다 . 세게 때리다 재 (따라서 BusyBox이므로 대부분의 임베디드 Linux) 대시 FreeBSD / bin / sh …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.