내 교과 과정에는 가짜 휴지통 폴더에서 파일을 '복원'하기위한 리눅스 스크립트 작성이 포함됩니다. 나는 이것을했고, 마치 이 일을해야한다고 생각하지만 그렇지 않습니다.리눅스에서 'sed'를 사용할 때 여분의 문자 오류
이나오지 : -e 표현 # 1, 문자 2 : 대신에, 나는 말한다 오류 get 명령 후 추가 문자가
하지만 난 볼 수 없습니다 왜, 내가 사용하지 않기 때문에 내 코드 어디서나 -e 표현식. 그러나, 내 두뇌는 너무 오랫동안 코드를 쳐다 보지 못해서 튀지 못해 내가 볼 수없는 어리석은 실수 일 수 있습니다. 어떤 도움이라도 대단히 감사하겠습니다!
여기 내 코드입니다 :
#!/bin/sh
if [ "$1" = "-n" ]
then
##if command is used with -n, prompts user to enter a new location for the file
cd ~/my-documents/mydir01/trashbin
restore=`sed "$2" ~/my-documents/mydir01/locations`
name=`basename "$restore"`
echo $name
echo "Enter new location for this file."
read loc
echo $loc
mv -i `"$name" "$newloc"/"$name"`
else
##file will be restored to its previous location
cd ~/my-documents/mydir01/trashbin
restore=`sed "$1" ~/my-documents/mydir01/locations`
loc=`dirname "$restore"`
echo $loc
name=`dirname "$restore"`
mv $1 $name
fi
틀릴 수도 있겠지만 ifname /'012name "$ restore"를 if/fi 안에두기 위해서 $ restore "를 옮겨야 할 것 같아요 – JoshDM
한 대답의 코멘트에 당신이 준 예제 명령을 사용하면, 'sed'는'sed 'NewFile02 "~/my-documents/mydir01/locations'로'if'가 true인지 아닌지 여부로 불립니다. 'N '이 유효한 명령이고 인수를 취하지 않는 경우,'e'는'sed'를 혼동합니다. 그것이 오류의 출처입니다. 그것을 바탕으로, 나는 당신이 정말로'sed'가 무엇인지 이해하지 못하거나, 그런 주장을하지 않을 것이라고 생각합니다. – livibetter