將使用者輸入新增至運行路徑以收集數據

將使用者輸入新增至運行路徑以收集數據

我正在嘗試讀取 .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

將返回行數。

相關內容