«shell» 태그된 질문

쉘은 Unix의 명령 행 인터페이스입니다. 쉘에 대화식으로 명령을 입력하거나 작업을 자동화하는 스크립트를 작성할 수 있습니다. / bin / sh 및 가장 호환 가능한 쉘 (ash, bash, ksh, zsh,…)에 적용되는 질문에이 태그를 사용하십시오. 오류가있는 쉘 스크립트는 여기에 게시하기 전에 http://shellcheck.net에서 확인하십시오.

6
반 비동기식 파이프
다음 파이프가 있다고 가정하십시오. a | b | c | d 어떻게 완료 기다릴 수 c(나 b)에서 sh나 bash? 즉, 스크립트 d는 언제든지 시작할 수 있으며 (대기 할 필요 는 없지만 ) c제대로 작동 하려면 전체 출력이 필요 합니다. 유스 케이스 는 이미지를 비교 하기 difftool위한 것 git입니다. 호출되어 git입력 …
11 bash  shell  pipe  fifo 

1
bash에서 오래된 프롬프트 행을 지우면 스크롤 공간이 절약됩니다.
제 터미널 테마는 이렇습니다. 그러나 나는 그 프롬프트가 너무 많은 공간을 낭비한다고 생각했다. 그리고 나중에 명령을 실행할 때마다 프롬프트를 정리할 수 있다는 아이디어를 얻었습니다. 나는 bash를 사용하고 있었고 해결책 중 하나는 preexec_invoke_exec기능 을 사용하는 것입니다. 다음 명령을 사용하여 마지막 프롬프트 문자를 정리합니다. echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m" 터미널이 이렇게 깨끗해 지도록 …
11 bash  shell  terminal  prompt 

2
프로세스 대체가 포함 된 출력 순서
이것이 내가 일반적으로 실행하는 일이다 grep하고 wc두 번 스캔 할 필요없이 파일 <file.txt tee >(grep LITERAL) >(wc -l) >/dev/null 그러나 이것은 EXEC LITERAL 32 때때로 그리고 32 EXEC LITERAL 다른 시간에. (의 출력 은 첫 번째 인스턴스 grep의 출력보다 우선하고 wc두 번째 의 출력은 그 반대입니다.) 반면에 리디렉션 및 파일 …

5
여러 프로그램에서 인쇄 된 줄을 안전하게 결합하는 방법은 무엇입니까?
여러 프로그램을 병렬로 실행하고 출력을 하나의 파이프에 결합하고 싶다고 가정 해보십시오. sh -c ' (echo qqq; echo qqq2; echo qqq3)& (echo www; echo www2; echo www3)& (echo eee; echo eee2; echo eee3)& wait; wait; wait' 이 쉘 접근법은이 간단한 경우에는 잘 작동하지만 프로그램이 다음과 같이 버퍼링 된 방식으로 더 많은 …

3
마지막 명령뿐만 아니라 모든 명령의 출력을 파일로 리디렉션
echo를 사용하여 파일에 헤더를 추가하고 명령을 사용하여 나머지 파일을 만듭니다. 이것은 두 개의 별도 명령을 사용한다는 것을 의미합니다. 리디렉션을 사용하여 두 명령의 출력을 파일에 어떻게 쓰나요? 난 노력 했어 echo "header line" | cut -c 1-5 input_file > output_file echo "header line"; cut -c 1-5 input_file > output_file 이것은 cut …

2
쉘 기능`> (tee copyError.txt> & 2)`의 이름은 무엇입니까?
stdout 및 stderr을 로그 파일에 로그해야하지만 화면에 오류 메시지 만 표시합니다. 나는 이것을 할 수있다 : cp -rpv a/* b 1> copyLog.txt 2> >(tee copyError.txt >&2) 웹 어딘가에서 찾았습니다. 이걸 어떻게 >(tee copyError.txt >&2)부르는지 알고 싶 습니까? Google은 꺾쇠 괄호 및 괄호와 같은 문자를 무시하기 때문에 Google에서 사용할 수 없습니다.
11 bash  shell 

2
`kill -p`는 실제로 작동합니까?
이 매뉴얼 페이지에서 kill다음과 같이 작성되었습니다. 개요 kill [ -s signal | -p ] [ -a ] [ -- ] pid ... kill -l [ signal ] -p Specify that kill should only print the process id (pid) of the named processes, and not send any signals. 그러나 RH와 RHEL에서 …

5
프로세스가 종료되거나 종료 될 때 SMS / 문자 메시지 알림을받을 수 있습니까?
서버 프로세스가 완료되면 전자 메일을 보내는 스크립트가 있습니다. 그러나 작업이 완료되었는지 확인하기 위해 이메일을 너무 자주 확인하고 싶지 않습니다. 따라서 SMS 메시지를 받고 싶습니다. 내 질문은이 질문과 비슷합니다. 모든 "전자 메일"과 SMS를 교환 하십시오. 프로세스가 완료되면 알림 전자 메일을 보낼 수있는 프로그램이 있습니까? 작업이 완료되거나 조기 종료 될 때 SMS를 …

2
따옴표 붙은 따옴표없는 문자열 확장
for i in $(xrandr); do echo "$i" ; done for i in "$(xrandr)"; do echo "$i"; done for i in "$(xrandr)"; do echo $i; done 1이 2와 다른 이유를 이해하지만 3이 2와 다른 결과를주는 이유는 무엇입니까? 출력도 설명 해주세요. 따옴표는 줄 바꿈에서 어떻게 작동합니까?

10
프로세스가 백그라운드에서 이미 실행 중인지 확인하는 배쉬 방법 (및이를 기반으로 다시 실행 생략)?
프로세스가 아직 백그라운드에서 실행되고 있지 않은 경우 특정 명령 만 실행하는 bash 명령 줄을 만들 수 있습니까? 명령이 이미 실행중인 경우 어떻게 확인 *합니까? (따라서 다음 명령을 추가하여 첫 번째 명령 &&이 참인 경우에만 다음 명령을 실행할 수 있습니다). * : 테스트, 결정, 발견, 발견
11 bash  shell  process 

2
X 윈도우가 나타나거나 사라질 때까지 기다립니다 (정상적인 방식으로)
셸 스크립트 안에서 제목에 문자열이있는 창이 나타날 때까지 기다렸다가 어떤 동작을 수행 한 다음 사라질 때까지 기다렸다가 다른 동작을 수행해야합니다. 어제까지이 간단한 코드가있었습니다. 문제는 스크립트가 실행되는 동안 디스크를 절전 상태로 만들 수 없으며 여러 시간 동안 지속될 수 있다는 것입니다. while :; do until wmctrl -l | grep -q "$string"; …
11 bash  shell  python  window 

2
실행하기 전에 서브 쉘을 확장 하시겠습니까?
나는 종종 서브 쉘을 사용하여 명령을 실행하고 때로는 무언가를 실행하기 전에 서브 쉘을 확장하고 싶습니다. 이런 방식으로 내가하고있는 일을 확인하고 일어날 일을 편집 할 수 있습니다. 예를 들어, 다음 명령 줄을 실행하기 전에 확장하여 서브 쉘의 결과를 편집하려면 어떻게해야합니까? 예 : $ find -name "test.txt" /tmp/test.txt $ mv $(!!) /tmp/new.txt …


7
배열 이름의 일부로 변수를 사용하는 방법
두 개의 배열이 있습니다. arrayA=(1 2 3) arrayB=(a b c) 그리고 명령 줄 인수를 사용하여 그중 하나를 인쇄하고 싶습니다 if else. 나는 성공하지 않고 구문에 대해 몇 가지 변형을 시도했다. 나는 이런 식으로하고 싶다 : ARG="$1" echo ${array${ARG}[@]} 그러나 "나쁜 대체"오류가 발생합니다. 어떻게하면 되나요?
11 bash  shell 

2
파일 이름에 공백이있는 스크립트 문제
원격 호스트에서 로컬로 파일을 scp하는 스크립트가 있습니다. 때로는 파일 이름에 공백이 포함되어 있습니다. scp는 파일 이름에서 공백을 좋아하지 않습니다. 어떤 이유로 공간을 처리하려는 시도가 올바른 scp 경로를 얻지 못했습니다. 암호: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop 결과 Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg PATH를 따옴표로 묶으 "$PATH"면 동일한 오류가 …

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