파일 경로를 연결할 수 없습니다. 권한이 거부되었습니다.

파일 경로를 연결할 수 없습니다. 권한이 거부되었습니다.

파일을 열지 않고 일부 파일 경로를 연결하려고 하면 "권한이 거부되었습니다"라는 메시지가 표시되는 이유를 이해할 수 없습니다.

#!/bin/bash

if [ "$#" -eq 1 ]; then
        path1= "./src/$1"
        path2= "./Main/$1"
        echo $path1
else
        echo "Invalid number of parameters"
fi

이것이 bash 스크립트(비교.sh)를 실행하는 방법입니다:

여기에 이미지 설명을 입력하세요.

폴리스티렌: ./src/GraphicTest.cpp./Main/GraphicTest.cpp기존 파일입니다.

답변1

쉘 변수는 구문을 사용하여 설정됩니다 name=value. 선언에는 [인용되지 않은] 공백 문자가 있어서는 안 됩니다.

    path1="./src/$1"
    path2="./Main/$1"
    #     ^ remove space here

name=value귀하의 사용법 공간은 개별 프로그램 호출에 대한 환경 변수를 임시로 설정하는 다른 사용법을 호출하고 있습니다 .

예를 들어:

# set environment variable "foo" to "bar" for this invocation of "program"
foo="bar" /path/to/program
# set "baz" to an empty value for the invocation of "program"
baz= /path/to/program

권한 거부 오류가 발생하는 이유 path1= "./src/$1"는 "환경 변수 path1을 null로 설정하고 프로그램 ./src/$1을 호출"하는 것으로 표시되고 ./src/$1실행 가능 비트가 설정되지 않아 실패하기 때문입니다.

관련 정보