«shell» 태그된 질문

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


3
"트랩… INT TERM EXIT"가 정말로 필요합니까?
정리 작업 에 trap사용 trap ... INT TERM EXIT하기위한 많은 예 . 그러나 세 sigspec을 모두 나열해야합니까? 매뉴얼은 말합니다 : SIGNAL_SPEC이 EXIT (0) 인 경우 ARG는 쉘 종료시 실행됩니다. 이는 내가 믿는 스크립트가 정상적으로 완료하거나 수신하기 때문에 완료 여부를 적용 SIGINT나 SIGTERM. 실험은 또한 나의 믿음을 확인시켜줍니다 : $ cat …
63 bash  shell  signals  trap 


3
아카이브를 디스크에 저장하지 않고 아카이브를 다운로드하고 추출하는 방법은 무엇입니까?
주어진 디렉토리에서 아카이브를 다운로드하고 압축을 풀고 싶습니다. 지금까지 내가 한 일이 있습니다. wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz tar zxf dbt2-0.37.50.3.tar.gz mv dbt2-0.37.50.3 dbt2 대신 디스크에 기록 하지 않고 즉시 아카이브를 다운로드하여 압축을 풀고 싶습니다 tar.gz. 나는이의 출력 파이프에 의해 가능하다고 생각 wget을을 tar하고, 제공 tar대상을하지만 실제로 내가 함께 조각을 넣어하는 방법을 모르겠어요.
62 shell  pipe  tar  wget 

5
SIGINT가 상위 프로세스로 전송 될 때 하위 프로세스로 전파되지 않는 이유는 무엇입니까?
쉘 프로세스 (예 :) sh와 자식 프로세스 (예 :)가 주어지면 쉘의 프로세스 ID를 사용하여 + cat의 동작을 어떻게 시뮬레이트 할 수 있습니까?CtrlC 이것이 내가 시도한 것입니다. 실행 sh후 cat: [user@host ~]$ sh sh-4.3$ cat test test 보내기 SIGINT까지 cat다른 단말로부터 : [user@host ~]$ kill -SIGINT $PID_OF_CAT cat 신호를 수신하고 (예상대로) …
62 shell  process  signals 

5
중첩의 들여 쓰기와 일치하도록 heredoc을 들여 쓸 수 없습니다
스크립팅에 "First World Problems"가 있다면 이것이 문제 일 것입니다. 업데이트하는 스크립트에 다음 코드가 있습니다. if [ $diffLines -eq 1 ]; then dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g') mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI Last Change: $dateLastChanged This …

6
bash에서 색상을 인쇄 할 수 있는지 확인하는 방법
프로그램에서 색상을 사용하여 터미널 출력을 출력 할 수 있는지 확인할 수있는 방법이 있는지 알고 싶습니다. 같은 명령을 실행 less하고 색상을 사용하여 출력하는 프로그램의 출력을 보면 출력이 잘못 표시됩니다. [ESC[0;32m0.052ESC[0m ESC[1;32m2,816.00 kbESC[0m] 감사
62 shell  terminal  colors 

1
nullglob가 기본이 아닌 이유는 무엇입니까?
대부분의 쉘 nullglob에서 기본값이 아닙니다. 예를 들어이 명령을 실행하면 ls * 빈 디렉토리에서는 *글로브를 리터럴로 확장하고 *빈 인수 목록으로 확장합니다 . *빈 디렉토리에서 빈 인수 목록을 리턴하여보다 직관적 인 것처럼 보이 도록 해당 동작을 변경하는 방법이 있습니다 . 그렇다면 왜 nullglob기본적으로 비활성화되어 있습니까? 그렇다면 그 이유는 무엇입니까?
61 shell  wildcards 


1
/ bin / sh를 사용하여 stderr 및 stdout을 / dev / null로 리디렉션
나는 모두를 리디렉션하는 방법의 모든 종류의 시도 stdout와 stderr에를 /dev/null어떤 성공하지. 나는이 문제가 없었던 거의 평생 동안 bash를 가지고 있지만 BSD에서는 한 번은 붙어 있습니다 /bin/sh. 내가 시도한 것 : if ls ./python* 2> /dev/null; then echo found Python fi ... 작동합니다. 파이썬이 없으면 ls의 에러 메시지를 뮤트합니다. 그러나 python.tgz존재하는 …

1
이 명령은 어떻게 합법적입니까? “> file1 <file2 cat”
file2이미 존재 한다고 가정하면 명령은 &gt; file1 &lt; file2 cat 의 콘텐츠를 복사하는 file2것 같습니다 file1. 그러나 나는이 구조를 이해할 수 없습니다. "아무것도"가 file1(콘텐츠를 만들거나 지우는 ) 것으로 향하고 있음을 이해합니다 . 그런 다음의 내용 file2이로 전달됩니다 file1. 왜 cat후 file2? cat file2피연산자가 올바른 순서가 아닌지 어떻게 알 수 있습니까?

2
파일 줄을 반복하는 방법?
이 파일이 있다고 가정 해보십시오. hello world hello world 이 프로그램 #!/bin/bash for i in $(cat $1); do echo "tester: $i" done 출력 tester: hello tester: world tester: hello tester: world for공백을 무시하고 각 줄을 개별적으로 반복 하고 싶습니다 . 즉, 마지막 두 줄은 tester: hello world 따옴표 for i …


3
`//`로 시작하는 Shebang?
스크립트 ( hello.go)를 따르는 것이 혼란 스럽습니다 . //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } 실행할 수 있습니다. (MacOS X 10.9.5에서) $ chmod +x hello.go $ ./hello.go hello, world 으로 시작하는 shebang에 대해들은 적이 없습니다 //. 그리고 스크립트 상단에 빈 …

6
expr 산술의 괄호 : 3 * (2 + 1)
expr 괄호를 좋아하지 않는 것 (수학에서 명시적인 연산자 우선 순위로 사용) : expr 3 * (2 + 1) bash: syntax error near unexpected token `(' bash에서 연산자 우선 순위를 표현하는 방법은 무엇입니까?

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