![데이터 수집을 위한 실행 경로에 사용자 입력 추가](https://linux55.com/image/191983/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%88%98%EC%A7%91%EC%9D%84%20%EC%9C%84%ED%95%9C%20%EC%8B%A4%ED%96%89%20%EA%B2%BD%EB%A1%9C%EC%97%90%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9E%85%EB%A0%A5%20%EC%B6%94%EA%B0%80.png)
.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
행 수가 반환됩니다.