coprocesses

예시 #1
coprocesses

예시 #1

Bash를 가지고 놀고 있는데 coproc뭔가 이해할 수 없습니다. 다음 예부터 시작하겠습니다. 예시 #1 $ coproc MY_BASH { bash; } [1] 95244 $ echo 'ls -l; echo EOD' >&"${MY_BASH[1]}" $ is_done=false; while [[ "$is_done" != "true" ]]; do > read var <&"${MY_BASH[0]}" > if [[ $var == "EOD" ]]; then >...

Admin

coprocess의 반환 값 및 반환 상태
coprocesses

coprocess의 반환 값 및 반환 상태

이 문장의 의미를 이해하지 못해요공동 프로세스내부에세게 때리다매뉴얼 페이지: 코프로세스는 비동기식 명령으로 생성되므로,코루틴이 명령은 항상 성공을 반환합니다. coprocess의 반환 상태는 "command"의 종료 상태입니다. '성공'과 '성공'의 차이점은 무엇인가요?반환 값및 "성공/오류"(0/비-0)종료 상태? 어떻게 다르게 처리되는지세게 때리다? 어떻게 그들이 차이점을 깨닫게 할 수 있을까요? ...

Admin

명령 대체 시 coproc 및 명명된 파이프 동작
coprocesses

명령 대체 시 coproc 및 명명된 파이프 동작

동일한 명령 대체에 대한 후속 호출과 상태를 전달하는 명령 대체를 통해 호출되는 zsh 쉘 스크립트에서 함수를 생성해야 합니다. C 함수의 정적 변수와 유사합니다(대략적으로). 이를 위해 저는 보조 프로세서를 사용하는 방법과 명명된 파이프를 사용하는 방법 등 두 가지 접근 방식을 시도했습니다. 명명된 파이프 방법을 작동시킬 수 없습니다. 보조 프로세서와 관련된 유일한 문제를 해결할 것이라고 생각했기 때문에 실망스럽습니다. 즉, 터미널에서 새 zsh 셸을 입력하면 상위 zsh 세션의 coproc을 볼 ...

Admin

coprocess를 사용하여 BASH에서 이름 참조 변수 작성
coprocesses

coprocess를 사용하여 BASH에서 이름 참조 변수 작성

현재 coproc을 사용하여 백그라운드 프로세스를 시작하고 이름 참조 변수를 업데이트하려고 합니다. 작동하지 않는 코드: function updateVariable(){ local -n myVar="${1}" #i=0; while : do sleep 1 myVar="ok" #((++i)) done } capture=""; coproc mycoproc { updateVariable capture; } 예상대로 작동하지 않습니다. echo $capture그냥 비...

Admin

coproc과 함께 cvlc 사용
coprocesses

coproc과 함께 cvlc 사용

사용하려는 .mp3가상 인터페이스 (예:)는 재생 목록에 동적으로 추가하거나 전체 파일 설명자를 새 데이터(새 파일)로 덮어쓰기 위해 vlc파일 설명자 파일을 제공합니다 .cvlc.mp3 coproc cvlc cvlc filename.mp3 >& OR >>&"${COPROC[1]}" 이는 실행되지만 프롬프트가 반환될 때까지 기다립니다. 이는 출력을 파일 설명자로 지정하기 때문에 예상되지 않습니다. ...

Admin

Bash 스크립트의 Coproc
coprocesses

Bash 스크립트의 Coproc

Raspberry Pi의 Bluetooth를 검색 가능하게 만들기 위해 간단한 셸 스크립트를 작성하려고 하는데 몇 가지 문제가 발생했습니다. 내 Raspberry Pi는 Raspbian을 실행합니다. 명령줄을 통해 실행하면 정상적으로 작동합니다. coproc bluetoothctl echo -e 'discoverable on' >&${COPROC[1]} 그러나 다음을 수행하는 쉘 스크립트를 만들 때: #! /bin/bash coproc bluetoothctl echo -e 'di...

Admin

여러 동시 공동 프로세스를 가질 수 있습니까?
coprocesses

여러 동시 공동 프로세스를 가질 수 있습니까?

이것의도아래 테스트 스크립트 1 의 목적 은 "외부" 공동 프로세스(실행 중)를 시작하고 seq 3, 루프에서 이 공동 프로세스의 데이터를 읽고 while, 읽은 각 줄에 대해 외부 루프의 현재 반복을 식별하는 줄을 인쇄하고, "내부" 공동 프로세스를 시작하는 것입니다. " " 코프로세스( seq새 매개변수를 사용하여 실행 중)는 중첩된 while 루프에서 이 내부 코프로세스를 읽은 다음 이 내부 코프로세스를 정리합니다. 중첩된 while 루프는 내부 ​​코프로세스에서 읽는 각 줄에 대한 일부 출력을...

Admin

프런트엔드 터미널 액세스를 통해 백그라운드에서 명령 실행
coprocesses

프런트엔드 터미널 액세스를 통해 백그라운드에서 명령 실행

임의의 명령을 실행하고 하위 프로세스와 상호 작용(구체적인 세부 정보는 생략됨)한 다음 종료될 때까지 기다릴 수 있는 함수를 만들려고 합니다. 성공하면 입력이 run <command>마치 알몸인 것처럼 동작합니다 <command>. 하위 프로세스와 상호작용하지 않았다면 간단히 다음과 같이 작성했을 것입니다. run() { "$@" } 하지만 실행되는 동안 상호 작용해야 하므로 coproc및 를 사용하여 더 복잡한 설정을 사용합니다 wait. run() { ...

Admin

bash coprocess는 어떻게 파이프라이닝을 달성하나요?
coprocesses

bash coprocess는 어떻게 파이프라이닝을 달성하나요?

참고로 이 구절은남자 난교(강조): 공동 프로세스 coprocess는 coproc 예약어 앞에 오는 쉘 명령입니다. 코프로세스는 & 제어 연산자를 사용하여 명령이 종료된 것처럼 서브셸에서 비동기적으로 실행됩니다.양방향 튜브 포함 실행 쉘과 코프로세스 사이에 설정됩니다. 이제 우리가 알고 있듯이 다른 *nix 시스템과 달리Linux 파이프는 단방향입니다.(또한 참조인적관리(7), 이식성 섹션). 그렇다면 bash coproces는 Linux에서 사용할 수 없는 "양방향 파...

Admin

여러 백그라운드 기능에서 bash 읽기 명령의 프로세스 간 통신
coprocesses

여러 백그라운드 기능에서 bash 읽기 명령의 프로세스 간 통신

다음 코드를 기본 입력에서 읽고 함수에서 읽은 다음 다른 함수의 입력으로 보낼 수 있도록 노력하고 있지만 작동하도록 할 수 없고 입력해야 합니다. 구문 분석할 수 있도록 명령을 가져옵니다. coproc test { for i in $(seq 0 9) do sleep 1 echo $i done } input() { while read -u 3 gr do echo sent: $gr # this should send to output functio...

Admin

이 gawk 코루틴은 왜 멈추나요?
coprocesses

이 gawk 코루틴은 왜 멈추나요?

노력하는 동안Bash 쉘에서 날짜 변환, 나는 노력했다GNU awk의 보조 프로세스 기능: gawk -F, -v cmd='date +"%Y-%m-%d %H:%M:%S" -f-' '{print $5 |& cmd; cmd |& getline d; $5 = d}1' foo 명령이 정지됩니다. 나는 이것이 date전체 입력이 읽힐 때까지 기다리기 때문일 것이라고 생각하여 파이프의 전송 절반을 닫아 보았습니다. gawk -F, -v cmd='date +"%Y-%m-%d %H:%M:%S" ...

Admin