Linux용 Windows 하위 시스템에서 sh 또는 bash 없이 셸 스크립트를 실행하는 방법은 무엇입니까?

Linux용 Windows 하위 시스템에서 sh 또는 bash 없이 셸 스크립트를 실행하는 방법은 무엇입니까?

저는 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을 선택하기 위해 파일에 -플래그가 있는지 확인하세요.usergroupothersman 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 가이드에서

관련 정보