shell에서 source 명령을 찾을 수 없습니다.
이 스크립트는sh
셸을 사용하는 행에 오류가 표시됩니다.source
명령어를 입력합니다.그런 것 같다source
에 포함되어 있지 않습니다.sh
껍데기.
내가 명시적으로 도망가려고 하면source
셸에서 얻은 정보:
sh: 1: source: not found
"source"를 설치해야 합니까?잘못된 버전인가요?sh
?
/bin/sh
보통 쉘을 흉내내려고 하는 다른 셸입니다.많은 분포에서 사용/bin/bash
위해서sh
, 를 서포트합니다.source
하지만 우분투에서는/bin/dash
를 지원하지 않는 것이 사용되고 있습니다.source
대부분의 조개껍질은.
대신source
스크립트를 편집할 수 없는 경우 스크립트를 실행하는 셸을 변경해 보십시오.
Bourne shell(sh)에서는 . 명령어를 사용하여 파일을 송신합니다.
. filename
특정 OS/환경(Mac OS, Travis-CI, Ubuntu 이상)에서는 다음이 필요합니다.
. ./filename
(아래 Adrien Jolly의 코멘트 크레딧)
$ls -l `which sh`
/bin/sh -> dash
$sudo dpkg-reconfigure dash #Select "no" when you're asked
[...]
$ls -l `which sh`
/bin/sh -> bash
그럼 괜찮을 거야
그source
builtin은 bashism입니다.간단히 말하면 다음과 같습니다..
대신.
예.
. $FILE
# OR you may need to use a relative path (such as in an `npm` script):
. ./$FILE
이 문제는 jenkins Execute Shell이 /bin/sh를 통해 스크립트를 실행하기 때문에 발생합니다.
따라서 /bin/sh는 "소스"를 인식하지 않습니다.
jenkins에서 Execute Shell의 맨 위에 다음 행을 추가하면 됩니다.
#!/bin/bash
#Jenkins execute shell에서 source 명령을 호출하려고 할 때 이 오류가 발생했습니다.
source profile.txt
또는source profile.properties
source 명령어 대체는 다음과 같습니다.
. ./profile.txt
또는. ./profile.properties
메모: 두 점 사이에 공백이 있습니다.
그source
명령어는 일부 셸에 포함되어 있습니다.스크립트가 있는 경우 다음과 같이 첫 번째 줄에 사용할 셸을 지정해야 합니다.
#!/bin/bash
Ubuntu의 gnu Makefile을 찾았습니다(여기서 /bin/sh -> bash)
. 명령어를 사용하고 ./ 프리픽스로 타겟스크립트를 지정해야 했습니다(아래 예 참조).
소스가 이 인스턴스에서 작동하지 않았습니다. /bin/module을 호출해야 하므로 이유를 알 수 없습니다.
My SHEL 환경변수도 /bin/bash로 설정됩니다.
test:
$(shell . ./my_script)
이 예에서는 탭 문자는 포함되지 않습니다.스택 교환을 위해서는 포맷을 해야 합니다.
source는 bash 기본 제공 명령어이므로 source 명령을 실행하려면 루트로 로그인할 수 있습니다.
sudo -s source ./filename.sh
Ubuntu에서는 sh scriptname을 사용하지 않습니다.sh 파일을 실행하기 위해 .scriptname을 사용했습니다.그리고 효과가 있었어!파일의 첫 번째 행은 다음과 같습니다.#!/bin/bash
이 명령을 사용하여 스크립트를 실행합니다.
.name_of_script.sh
source를 포함한 bash 기능을 사용하도록 설정하는 순수 셸에서 bash로 전환하는 두 가지 옵션이 있습니다.https://superuser.com/questions/1220159/bash-prompt-variables-not-working/1764353#1764353
또는 이 폼의 소스 대신 을 사용합니다.
~/.your_file_name
예를들면
~/.twrcrc
도트와 틸다 사이의 한 칸을 고려해 주세요.Tilda는 홈디렉토리를 참조합니다.파일이 홈 위 어딘가에 있는 경우 /에서 절대 주소를 사용합니다.
스크립트를 "source" 대신 "."를 사용하도록 변경할 수 없는 경우 "sh" 링크를 "dash" 대신 "bash"를 가리키도록 변경합니다.
# which sh
/usr/bin/sh
# which bash
/usr/bin/bash
# ls -la /usr/bin/sh
lrwxrwxrwx 1 root root 4 Oct 5 15:55 /usr/bin/sh -> dash
# ls -sf /usr/bin/bash /usr/bin/sh
# ls -la /usr/bin/sh
lrwxrwxrwx 1 root root 4 Feb 6 09:18 /usr/bin/sh -> bash
이 될 수 있습니다.이했습니다.저는 이 에러를 수신하고 있었습니다.이 에러를 새로고침하려고 했기 때문입니다..profile
를 . .profile
구문 .
쉘하여 Bourne PATH를 .source <file>
' found라는 오류가 파일을 찾을 수 없다
시험:
source ./<filename>
언급URL : https://stackoverflow.com/questions/13702425/source-command-not-found-in-sh-shell
'programing' 카테고리의 다른 글
JavaScript 문자열을 모두 소문자로 변환 (0) | 2023.04.17 |
---|---|
git 브랜치 이름을 붙이기 위해 일반적으로 사용되는 프랙티스의 예는 무엇입니까? (0) | 2023.04.17 |
R 스크립트에서 Excel 파일 직접 읽기 (0) | 2023.04.12 |
@synthe size는 정확히 어떤 역할을 합니까? (0) | 2023.04.12 |
다중 INSERT 문 대 다중 값을 가진 단일 INSERT (0) | 2023.04.12 |