sh는 버전 7 Unix 이후의 표준 Unix 쉘입니다. POSIX는 Bourne Shell을 기반으로 표준화 된 쉘 동작을 가지고 있으며 이식 가능한 쉘 스크립트는 표준화 된 구문을 준수해야합니다. Bourne / POSIX 스타일 쉘에 적용되는 질문에이 태그를 사용하십시오. 오류가있는 쉘 스크립트는 여기에 게시하기 전에 http://shellcheck.net에서 확인하십시오.
이 구문에 익숙합니다. cmd1 << EOF | cmd2 text EOF 그러나 bash가 내가 쓸 수 있음을 발견했습니다. cmd1 << EOF | text EOF cmd2 heredoc은 cmd1의 입력으로 사용되며 cmd1의 출력은 cmd2로 파이프됩니다. 이것은 매우 이상한 구문처럼 보입니다. 휴대용인가요?
Windows 7 명령 프롬프트에서 .sh를 어떻게 실행할 수 있습니까? 이 줄을 실행하려고하면 항상이 오류가 발생합니다. app/build/build.sh 오류, 'app' is not recognized... 또는, bash app/build/build.sh 오류, 'bash' is not recognized... 내가 놓친 아이디어가 있습니까? 여기 화면이 나옵니다.
$ PATH 변수에 동일한 경로를 6 번 정의했습니다. 작동 여부를 확인하기 위해 로그 아웃하지 않았습니다. 중복을 제거하려면 어떻게해야합니까? $ PATH 변수는 다음과 같습니다. echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin 어떻게 재설정합니까? /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Bash를 사용하여 문자열에서 문자의 발생 횟수를 계산해야합니다 . 다음 예에서, 숯 인 경우 (예) t, 그 echo이야 의 발생의 정확한 개수 t하여 var있지만, 문자 또는 쉼표 세미콜론되면 제로 출력한다 : var = "text,text,text,text" num = `expr match $var [,]` echo "$num"
두 개의 쉘 스크립트 a.sh와 b.sh. In a.sh과 b.sh나는 무한 for 루프를 가지고 있으며 터미널에 일부 출력을 인쇄합니다. 둘 다 호출하는 또 다른 스크립트를 작성 a.sh하고 b.sh싶지만 스크립트가 무한히 실행되는 대신 사용자가 즉시 터미널 제어권을 다시 얻고 터미널에서 출력을 숨기고 싶습니다.
셸에서 다음 코드 줄을 이해하고 싶습니다. 현재 작업 디렉토리를 가져 오는 데 사용됩니다. $(variable)이름이 변수 이름 내부의 값을 반환 한다는 것을 알고 있지만 무엇 $(command)을 반환해야합니까? 명령을 실행 한 후 값을 반환합니까? 이 경우 `명령을 실행하는 데 사용할 수 있습니다 . CWD="$(cd "$(dirname $0)"; pwd)" 다른 버전의 셸에서도 다음 코드 …
다음은 echo $var방금 할당 된 값과 다른 값을 표시 할 수 있는 일련의 사례 입니다. 이는 할당 된 값이 "큰 따옴표", "작은 따옴표"또는 따옴표없는 여부에 관계없이 발생합니다. 셸에서 내 변수를 올바르게 설정하려면 어떻게해야합니까? 별표 예상 출력은 /* Foobar is free software */이지만 대신 파일 이름 목록이 표시됩니다. $ var="/* Foobar …
다음을 사용하여 코드를 파일로 인쇄하고 싶습니다 cat <<EOF >>. cat <<EOF >> brightup.sh !/bin/bash curr=`cat /sys/class/backlight/intel_backlight/actual_brightness` if [ $curr -lt 4477 ]; then curr=$((curr+406)); echo $curr > /sys/class/backlight/intel_backlight/brightness; fi EOF 하지만 파일 출력을 확인하면 다음과 같이 표시됩니다. !/bin/bash curr=1634 if [ -lt 4477 ]; then curr=406; echo > /sys/class/backlight/intel_backlight/brightness; fi …
텍스트 파일에서 특정 줄을 가져 오려고합니다. 지금까지 온라인에서는 sed와 같은 것만 본 적이 있습니다. (저는 sh-bash 나 sed 또는 이와 비슷한 것을 사용할 수 없습니다). 기본 셸 스크립트 만 사용하여이 작업을 수행해야합니다. cat file | while read line do #do something done 위와 같이 줄을 반복하는 방법을 알고 있지만 특정 …
예 bash를 들어 C / C ++에서 잘 알려진 포워드 선언과 같은 것 또는 적어도 유사한 (해결 방법)이 있습니까? 아니면 예를 들어 항상 한 번의 패스 (한 줄씩)로 실행되기 때문에 그런 것이 있습니까? 전방 선언이없는 경우 스크립트를 더 쉽게 읽을 수 있도록하려면 어떻게해야합니까? 다소 길고 처음에는 이러한 함수 정의가 전역 …
그래서 나는 과다한 파일 유형을 다루는 경험이 없으며 .sh파일이 정확히 무엇인지에 대한 많은 정보를 찾을 수 없었습니다 . 내가하려는 작업은 다음과 같습니다. 개별적으로 다운로드 할 수있는 타일에 배열 된지도 데이터 세트를 다운로드하려고합니다. http://daymet.ornl.gov/gridded 한 번에 다양한 타일을 다운로드하기 위해 스크립트를 다운로드하라고 말하면 결국 https://github.com/daymet/scripts/blob/master/Bash/daymet-nc-retrieval.sh 로 이어집니다 daymet-nc-retrieval.sh. 그렇다면이 코드로 정확히 …