저는 WSL(Linux용 Windows 하위 시스템)을 사용하여 우분투를 실행하고 있습니다. 아래에 간단한 쉘 스크립트를 작성했습니다. 실행하면 아래 오류가 발생합니다.
#! /bin/sh
# "test script"
echo "hello world"
test.sh: 명령을 찾을 수 없습니다.
sh test.sh
그러나 using 명령을 실행하면 성공적으로 실행됩니다 bash test.sh
.
sh
그렇다면 기본 Linux처럼 실행하지 않고 실행할 수 있는 방법이 있습니까 ?
답변1
항상 ./test.sh
.
./
로 끝나는 현재 디렉토리로 확인되므로 /
스크립트의 전체 경로를 효과적으로 제공할 수 있습니다.
test.sh
현재 디렉토리가 에 있는 경우에만 작동 합니다 $PATH
. 이는 WSL에만 국한되지 않습니다.
답변2
기초:
첫 번째:
첫 번째 줄에 "shebang"이 있는 스크립트를 생성하면 텍스트 파일의 나머지 부분을 이해하는 bash, python 또는 perl인지 정의됩니다.
이는 일반적으로 다음과 같습니다: #!/bin/bash
또는 #!/bin/env python
일부
두번째:
예를 들어 , 및/또는 ( 자세한 내용은) x
을 선택하기 위해 파일에 -플래그가 있는지 확인하세요.user
group
others
man chmod
chmod 755 script_filename
제삼:
영구적으로 마운트된 저장 매체의 하드 디스크에 있는 폴더(디렉토리)에 넣으십시오. 개인용으로 좋은 아이디어가 있을 수 있습니다
.mkdir -p $HOME/bin/
네번째:
폴더가 in에 명시되어 있는지 확인하세요 . 예를 들어 in을 echo $PATH
포함하는 줄을 추가하면 됩니다.
export PATH=$PATH:/absolute/path/to/folder/
$HOME/.bash_aliases
이 모든 것이 준비되면 스크립트에 액세스할 수 있습니다(실행 가능).새로 시작된 셸에서(#4가 적용되려면)- bash 프롬프트에 이름만 입력하면 됩니다.
(참고: 적어도 첫 번째 구현에서 WSL은 Canonical의 Ubuntu였습니다.)
자세한 세부 사항:https://tldp.org/guides.html- Bash 가이드에서