![파일 경로를 연결할 수 없습니다. 권한이 거부되었습니다.](https://linux55.com/image/35838/%ED%8C%8C%EC%9D%BC%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%EA%B6%8C%ED%95%9C%EC%9D%B4%20%EA%B1%B0%EB%B6%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
파일을 열지 않고 일부 파일 경로를 연결하려고 하면 "권한이 거부되었습니다"라는 메시지가 표시되는 이유를 이해할 수 없습니다.
#!/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
실행 가능 비트가 설정되지 않아 실패하기 때문입니다.