#!/bin/bash
RESULT=$(grep -i -e "\.[a-zA-z]\{3\}$" ./test.txt)
for i in $(RESULT);
do
echo "$i"
FILENAME="$(dirname $RESULT)"
done
У меня проблема с линией FILENAME="$(dirname $RESULT)"
. Запуск скрипта в режиме отладки (bash -x script-name
), то есть Ouput:Bash Script Variable
test.sh: line 9: RESULT: command not found
По какой-то причине не может принять результат переменной RESULT
и сохранить результат dir
команды к новой переменной FILENAME
. Я не понимаю, почему это происходит.
После многих попыток я нашел решение сохранить полный путь к финалу и финал двум различным переменным. Теперь, я хочу для каждого финала, найти нечувствительный к каждому имени файла. Например, ищет файл image.png, это не имеет значения, если файл image.png
Я бегу сценарий
while read -r name; do
echo "$name"
FILENAME="$(dirname $name)"
BASENAME="$(basename $name)"
done < <(grep -i -e "\.[a-zA-z]\{3\}$" ./test.txt)
, а затем введите команду:
find . $FILENAME -iname $BASENAME
, но он говорит, что команда FILENAME и BASENAME не найдены.
я нашел, почему выход был командой ИМЯ_ФАЙЛА & BASENAME не найдено. Я добавил кавычки для каждой переменной. Теперь, хотя он имеет полный путь, сохраненный в переменной FILENAME, он говорит, что такого каталога нет. Кажется, что он не может прочитать фактический путь к файлу. – user200913