Agregar entrada del usuario a la ruta de ejecución para recopilar datos

Agregar entrada del usuario a la ruta de ejecución para recopilar datos

Estoy intentando leer la cantidad de líneas en un archivo .list pero el archivo .list está dentro de una carpeta. mis códigos son los anteriores:

#!/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

Mis códigos son definitivamente incorrectos, pero mi idea es que digamos que un usuario ingresa la parte frontal y la agrega al $fileaddpathCD en la carpeta final. por ejemplo, claves de usuario en project/user123/folder1. Esto luego se combina con filepath=/filebig/filemedium/filesmall/data.listPara obtener un resultado final de

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

Respuesta1

Deberías cambiar de línea:

filefinalpath=$filename + $filepath

ser

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

Respuesta2

Varios asuntos:

1) cdsignifica "cambiar directorio" y solo permite moverse a un directorio, pero fallará para un archivo.

DE ACUERDO:

cd /path/to/directory

ERROR:

cd /path/to/directory/file.list

2) Combinando cuerdas

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

3) Contando líneas

Recomiendo encarecidamente utilizar wcpara esto:

wc -l file

devolverá el número de líneas.

información relacionada