«shell-script» 태그된 질문

쉘 스크립트, 쉘로 해석되는 실행 파일 (bash, zsh 등)에 대한 질문.

4
쉘 스크립트로 변수 내용의 내용을 인쇄 할 수 있습니까? (간접 참조)
다음 변수를 선언했다고 가정 해 봅시다. $ var='$test' $ test="my string" 내용을 인쇄하면 다음이 표시됩니다. $ echo $var $test $ echo $test my string 나는의 내용의 내용을 인쇄하는 방법을 찾으려면 $var(내용입니다 $test). 그래서 나는 다음을 시도했다. $ echo $(echo $var) $test 그러나 결과는 다음 $test과 같습니다 "my string"... bash를 사용하여 …

3
파일을 소싱하기 전에 파일이 있는지 확인하는 이유는 무엇입니까?
파일을 소스하려고 할 때 파일이 존재하지 않는다는 오류가 표시되지 않도록 수정해야 할 사항이 있습니까? 예를 들어, nvm 은 이것을 프로파일 / rc에 추가 할 것을 권장합니다. export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 위와 같이 nvm.sh존재하지 않으면 "자동 오류"가 발생합니다. 그러나 시도 . "$NVM_DIR/nvm.sh"하면 …

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
동시 명령 후 bash 명령을 실행 하시겠습니까?
일부 명령을 병렬로 실행하고 싶습니다. 이 모든 명령이 완료되면 다음 명령을 시작하십시오. 나는 다음과 같은 접근법이 효과가 있지만 #!/bin/bash command1 & command2 & command3 && command4 그러나 그렇지 않았습니다. command4처음 세 명령이 모두 완료되면 실행해야합니다 .


6
실행 전 명령 바이너리 확인
bash 스크립트에서 실제로 실행중인 것을 확인하는 방법이 있습니까? (예 : 당신의 bash는 스크립트가 여러 가지 명령을 호출 말 tar, mail, scp, mysqldump) 그리고 당신이 있는지 확인하고자하는 tar실제, 실제 인 tar바이 결정될 수있는 root파일 및 상위 디렉토리 소유자 및 쓰기 권한을 가진 유일한 하나 인 사용자 가 아니라 일부 /tmp/surprise/tar에 www-data또는 …

2
이 Bash 스크립트를 호출 할 때 파일 인수에 따옴표가 필요한 이유는 무엇입니까?
Bash 스크립팅을 처음 접했습니다. "테스트 스크립트"가 있는데, 고급 / 유용한 스크립트의 기초로 사용했습니다. #!/bin/bash files=$1 for a in $files do echo "$a" done 따옴표없이 이것을 호출하면 디렉토리에서 하나의 파일을 선택합니다. testscript *.txt 그러나 따옴표로 호출하면 올바르게 작동하고 모든 텍스트 파일을 선택합니다. testscript '*.txt' 무슨 일이야?

2
쉘 스크립트가 어떤 프로그램을 실행했는지 알 수있는 방법이 있습니까?
* nix 세계에서 쉘 스크립트가 어떤 프로그램을 실행했는지에 대한 정보를 얻을 수있는 방법이 있습니까? 예: /path/to/script1 /path/to/script_xyz 이 가상 시나리오에서 script_xyz경로 정보를 가질 것입니다 ( /path/to/script1) 또는 프로세스 PID 그것을 실행 한 실체의. 참고 : 다른 솔루션과 접근법에 대해 궁금합니다. 실제로 이것이 가능할 것으로 기대하지는 않습니다.


3
두 개의 echo 명령 출력에서 ​​\ n을 제거하는 방법은 무엇입니까?
각 줄에 하나의 파일 이름을 포함하는 텍스트 파일이 있습니다. 111_c4l5r120.png 123_c4l4r60.png 135_c4l4r180.png 147_c4l3r60.png 15_c4l1r120.png ... 이 모양으로 변환하고 싶습니다. 111_c4l5r120.png 111 123_c4l4r60.png 123 135_c4l4r180.png 135 147_c4l3r60.png 147 15_c4l1r120.png 15 ... 이 코드를 사용하여 : #!/bin/bash while IFS='' read -r line || [[ -n "$line" ]]; do echo "$line" >> output.txt …

2
$ @에서 위치 매개 변수를 제거하는 방법
기본적으로 -inf매개 변수 목록에서 첫 번째 항목을 "추출"하고 싶습니다 . (나머지 매개 변수는 다른 명령으로 전달됩니다.) 내가 가지고있는 스크립트는 다음과 같은 구조를 가지고 있습니다 : #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break fi <CODE> done <CODE> some-other-command …

2
“bash -x”가이 스크립트를 중단하는 이유는 무엇입니까?
일부 명령이 실행되는 시간을 측정하는 스크립트가 있습니다. "실제" time명령 이 필요합니다. 예를 들어 /usr/bin/timebash-built-in에는 -f플래그 가 없기 때문에 바이너리입니다 . 아래는 디버깅 할 수있는 단순화 된 스크립트입니다. #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}') echo ABC--$TIMESEC--DEF if [ "$TIMESEC" …

5
for 루프의 결과에 따라이 스크립트를 오류 엑시트로 만들려면 어떻게해야합니까?
set -o errexit오류가 발생하면 전체 스크립트가 실패 시점에 종료되도록 사용하는 bash 스크립트 가 있습니다. 스크립트는 curl의도 한 파일을 검색하지 못하는 명령을 실행 하지만,이 경우 스크립트는 오류 종료에 실패하지 않습니다. for루프를 추가했습니다 몇 초 동안 일시 중지 한 후 curl명령 을 다시 시도하십시오. 사용 false기본 0이 아닌 종료 상태를 정의하는 for …

1
파일을 복사하고 타임 스탬프를 추가하십시오
스크립트에 파일을 복사하고 이름에 타임 스탬프를 추가하는 두 가지 문제가 있습니다. cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") 위 Test2의 파일 이름으로 추가 하지만이 예제에서 이름이 원래 소스 파일의 파일 이름을 유지하고 싶습니다 Test. cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r") 다른 문제는 %r타임 스탬프 코드를 대상 "PM"이 디렉토리가 아니라는 오류가 발생한다는 점입니다. 타임 …

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