CentOS 7을 사용하고 있습니다.
나는 이렇게 첫 번째 bash 스크립트를 작성했습니다.
#!/bin/bash echo 'this is my first code'
나는 그것을 다음과 같이 저장한다.안녕하세요 세계
내 루트 홈 디렉터리에 디렉터리를 만들었습니다.
mkdir bin
그런 다음 스크립트를 해당
~/bin
디렉토리로 옮겼습니다.그런 다음 나는 이렇게 했습니다.
export PATH=~/bin:"$PATH" source ~/bin
그런 다음 다음 명령을 사용하여 스크립트를 실행해 보았습니다.
hello_world
하지만 나는 그것을 볼 수 없지만 오류 this is my first code
가 발생합니다 bash: /root/bin/hello_world: Permission denied
.
답변1
명시적인 인터프리터 실행 없이 스크립트를 실행하려면(그림 참조 bash ~/bin/hello_world
) 스크립트 파일에 "실행 가능 비트" 세트가 있어야 합니다. 이는 다음과 같이 수행됩니다 chmod
(설명서 참조).
chmod u+x ~/bin/hello_world
파일 소유자의 실행 가능 비트를 설정합니다.
또는,
chmod +x ~/bin/hello_world
이는 현재 umask
.umask
022
수행한 단계는 source
무의미하며 오류 메시지가 표시됩니다(디렉토리를 가져올 수 없습니다).
PATH
새 설정을 "영구적으로" 설정해야 하는 경우 export PATH
쉘의 시작 파일에 이 행을 추가하십시오( 대화형 쉘을 ~/.bashrc
사용하는 경우 ).bash
또한 대화형 루트 프롬프트에서 작업하지 마십시오. 테스트 및 탐색을 위해 그리고 sudo
관리 작업을 수행해야 하는 드문 경우에는 권한이 없는 사용자 계정을 사용하십시오 .