无法连接文件路径,权限被拒绝

无法连接文件路径,权限被拒绝

我不明白为什么如果我只是尝试连接一些文件路径(不打开文件),我会得到“权限被拒绝”:

#!/bin/bash

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

这是我执行 bash 脚本(名为compare.sh)的方式:

在此输入图像描述

聚苯乙烯:./src/GraphicTest.cpp./Main/GraphicTest.cpp是现有文件。

答案1

Shell 变量是使用语法设置的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 设置为空并调用程序 ./src/$1”,并且由于./src/$1没有设置其可执行位,因此失败。

相关内容