Невозможно конкатенировать пути к файлам, разрешено отклонение

Я не могу понять, почему, если я просто попытаюсь конкатрировать некоторые пути к файлам (не открывая файлы), я получаю «разрешение отклонено»:

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

Вот как я исполняю сценарий bash (с именем compare.sh):

введите описание изображения здесь

PS : ./src/GraphicTest.cpp и ./Main/GraphicTest.cpp – существующие файлы.

One Solution collect form web for “Невозможно конкатенировать пути к файлам, разрешено отклонение”

Переменные оболочки задаются с использованием синтаксиса 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 doesn У его бита исполняемого файла это невозможно.

  • Сценарий оболочки для проверки наличия одного или нескольких файлов с определенным расширением?
  • Имеет ли `csh` эквивалент Bash` set -o nounset`?
  • Возвращаемое значение команд при использовании stdin?
  • Выход Cronjob в журнал
  • Как написать комбинацию сценариев Java / Shell, чтобы вы могли вызывать Java-программу как удаленную команду и все же поставлять локальный файл?
  • Как отправить вывод cmd в tmp-файл, одновременно просматривая файл tmp в vim
  • Почему этот скрипт зацикливается на первой строке файла txt?
  • Как получить последние пять рабочих дней в сценарии оболочки Unix, используя цикл `for`?
  • Получите очень следующее слово подстроки в строке
  • Найти файлы, для которых несколько вариантов этого имени файла существуют вместе в одном каталоге
  • Для цикла работает, но петли дважды
  • Linux и Unix - лучшая ОС в мире.