.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
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
행 수가 반환됩니다.