Добавление пользовательского ввода в путь запуска для сбора данных

Добавление пользовательского ввода в путь запуска для сбора данных

Я пытаюсь прочитать количество строк в файле .list, но файл .list находится глубоко внутри папки. Мои коды такие, как указано выше:

#!/bin/sh

echo -e "Enter file location: \c"
read filename

filepath=/filebig/filemedium/filesmall/data.list
filefinalpath=$filename + $filepath

cd $filefinalpath

if [ -e "$filefinalpath" ]
then
total=$(grep -c "#" -c -v $filefinalpath)
echo -e "There are $total lines"
else
echo $filefinalpath not found
fi

мои коды определенно неверны, но моя идея в том, что, скажем, пользователь вводит переднюю часть, она добавляется к $fileaddpathcd в конечную папку. например, пользователь вводит project/user123/folder1. Затем это объединяется с filepath=/filebig/filemedium/filesmall/data.listЧтобы получить конечный вывод

CDproject/user123/folder1/filebig/filemedium/filesmall/data.list

решение1

Вам следует изменить строку:

filefinalpath=$filename + $filepath

быть

filefinalpath="${filename}${filepath}"

решение2

Несколько вопросов:

1) cdозначает «изменить каталог» и позволяет перемещаться только в каталог, но не в случае с файлом.

ХОРОШО:

cd /path/to/directory

ОШИБКА:

cd /path/to/directory/file.list

2) Объединение строк

 stringA=foo
 stringB=bar
 newstring="$oldstring""$newstring"

3) Подсчет строк

Я настоятельно рекомендую использовать wcдля этого:

wc -l file

вернет количество строк.

Связанный контент