将用户输入添加到运行路径以收集数据

将用户输入添加到运行路径以收集数据

我正在尝试读取 .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

我的代码肯定是错误的,但我的想法是,假设用户输入前面的部分,它会添加到$fileaddpath最终文件夹中的 cd 中。例如用户键入project/user123/folder1.然后将其与filepath=/filebig/filemedium/filesmall/data.list得到的最终输出相结合

光盘project/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

将返回行数。

相关内容