«shell» 태그된 질문

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

3
트랩은 서브 쉘에 상속됩니까?
다음 스크립트를 시도했습니다. #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo 위 스크립트의 출력은 다음과 같습니다. [root@usr1 my_tests]# ./test.sh foo1 foo touching a file 그러나 나는 foo1서브 쉘 에서 호출 될 때 트랩이 호출 될 것으로 …
14 shell  trap  subshell 

3
마지막 구분 기호에서 문자열 자르기
같은 파일 이름 a.b.c.txt이 있습니다.이 문자열을 string1=a.b.c string2=txt 기본적으로 파일 이름과 확장자를 나누고 싶습니다. 내가 사용 cut하지만로 분할 a,b,c하고 txt. 마지막 구분 기호에서 문자열을 자르고 싶습니다. 누군가 도울 수 있습니까?
14 shell  cut 


3
bash는 작은 따옴표를 추가합니다
스크립트를 실행하는 데 문제가 있습니다. 디버그 모드 (bash -x)에서 실행할 때 bash가 따옴표를 추가하고 있음을 알 수 있습니다. 따라서 내 스크립트가 실패합니다. 여기 내 스크립트 안에 있습니다. testvar="\"sudo /home/pi/shared/blink.sh 27 off\"" ssh -n -q -q -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 $1 ${testvar} 이것은 출력입니다. ssh -n -q …
14 shell  ssh  quoting 



2
bash에서 시작된 실행 파일 순서
testbash 에서 명령을 실행하면 test(조건식 평가) 내장 유틸리티가 시작됩니다. $ type test test is a shell builtin $ type -a test test is a shell builtin test is /usr/local/bin/test test is /usr/bin/test $ 그러나 type -a test위의 출력에서 볼 수 있듯이 test/ usr / local / bin 디렉토리에 다른 디렉토리가 …

3
반향 또는 인쇄 / dev / stdin / dev / stdout / dev / stderr
/ dev / stdin, / dev / stdout 및 / dev / stderr의 값을 인쇄하고 싶습니다. 다음은 간단한 스크립트입니다. #!/bin/bash echo your stdin is : $(</dev/stdin) echo your stdout is : $(</dev/stdout) echo your stderr is : $(</dev/stderr) 나는 다음 파이프를 사용합니다 : [root@localhost home]# ls | ./myscript.sh [root@localhost home]# …

4
SIGINT 등을 잡을 때 종료 코드를 유지 하시겠습니까?
http://linuxcommand.org/wss0160.php#trap 에서 trap설명한 것과 같이 사용 하여 종료하기 전에 ctrl-c (또는 유사한) 및 정리를 잡으면 종료 코드가 변경됩니다. 이제 이것은 아마도 실제 세계에서 차이를 만들지 않을 것입니다 (예 : 종료 코드가 이식 가능하지 않고 프로세스가 종료 될 때 기본 종료 코드 에서 논의 된 것처럼 항상 명확하지는 않기 때문에 ) …

2
쉘에서 $ @의 데이터 구조는 무엇입니까?
우리는 보통 $@$ 0를 제외한 모든 인수를 나타내는 데 사용 합니다. 그러나 데이터 구조 $@가 무엇인지 모르겠습니다 . $*큰 따옴표로 묶을 때 다르게 행동하는 이유는 무엇 입니까? for 루프에서 반복 될 수 있으므로 배열 인 것 같습니다. 그러나 echo $@배열 인 경우 첫 번째 요소 만 표시됩니다. 쉘의 한계로 인해 …
13 bash  shell 

2
stdout / stderr가 인터리빙하는 것을 방지하는 것은 무엇입니까?
일부 프로세스를 실행한다고 가정 해보십시오. #!/usr/bin/env bash foo & bar & baz & wait; 위의 스크립트를 다음과 같이 실행합니다. foobarbaz | cat 내가 알 수있는 한, 프로세스 중 하나가 stdout / stderr에 쓰면 출력이 인터리브되지 않습니다. stdio의 각 줄은 원자 적 인 것처럼 보입니다. 어떻게 작동합니까? 각 라인의 원 자성을 …
13 shell  osx  stdout  output  stderr 

3
“ps ax”가“#!”없이 실행중인 bash 스크립트를 찾지 못하는 이유는 무엇입니까? 머리글?
이 스크립트를 실행할 때 죽을 때까지 실행되도록 ... # foo.sh while true; do sleep 1; done ... 다음을 사용하여 찾을 수 없습니다 ps ax. >./foo.sh // In a separate shell: >ps ax | grep foo.sh 21110 pts/3 S+ 0:00 grep --color=auto foo.sh ...하지만 일반적인 " #!"헤더를 스크립트에 추가하면 ... #! …

2
우분투에서 sh를 위해 Bash를 사용하는 방법
리소스가 rpm파일 인 거대한 프로그램을 설치하고 있습니다. 그것은 라인에 붙어 #!/bin/sh SCITEGICPERLBIN=`dirname $0` SCITEGICPERLHOME=`dirname $SCITEGICPERLBIN` if [ $SCITEGICPERLHOME == "." ] 분명히이 구문으로 Red Hat Linux에서 sh작동 bash하지만 unexpected operator우분투 에서 오류가 발생 합니다. bash스크립트가 rpm패키지 에서 제공 되므로 스크립트를 변경할 수 없습니다 . rpm패키지를 추출하여 재 포장 할 수 …

2
SSH가 백그라운드 프로세스를 기다리지 않는 이유는 무엇입니까?
ssh -t백그라운드 작업이 완료되기를 기다리지 않는 이유는 무엇 입니까? 예: ssh user@example 'sleep 2 &' 2 초 후에 ssh가 반환되기 때문에 예상대로 작동하지만 ssh user@example -t 'sleep 2 &' 끝나기를 기다리지 않고 sleep즉시 돌아옵니다. 아무도 이것의 이유를 설명 할 수 있습니까? ssh -t돌아 오기 전에 모든 백그라운드 프로세스가 완료 될 …

2
POSIX 쉘에서 함수와 변수에 대한 별도의 네임 스페이스
대시에서 함수와 변수는 별도의 네임 스페이스에있는 것처럼 보입니다. fn(){ fn="hello world" } fn; echo "The value is $fn!" #prints: The value is hello world! fn; echo "The value is $fn!" #prints: The value is hello world! #the fn variable doesn't conflict with the fn function 이것은 대시 전용 기능입니까 아니면 …
13 shell  posix  dash 

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