나는 bash 스크립팅을 배우려고합니다. 공백을 파일 이름으로 밑줄을 긋는 스크립트를 작성했습니다. 괜찮아. 여태까지는 그런대로 잘됐다.bash 스크립트는 루트 권한이 필요합니다.
내 스크립트가 다른 사용자 (예 : 루트 또는 www 데이터)가 소유 한 파일을 포함하는 특정 디렉토리에 들어갈 수 있습니다.
내 스크립트는이 파일들을 다행히 변환 할 수 없습니다 :) 그러나 나는 "당신은 루트 권한이 필요합니다"와 같은 경고 메시지를 선호합니다.
if [[ $# -eq 2 ]]; then
echo "Converting directory $2 .."
find . -name '* *' | while read file
do
target=`echo "$file" | sed 's/ /_/g'`
mv "$file" "$target" 2> /dev/null
done
else
fOptionE (produces usage message)
fi
당신이 날은 출력 "루트 권한이 필요합니다"를 반환 할 수있는 적절한 방법을 찾는 데 도움이 수 :
이 변환 블록
?if [ ! -w "$file" ]
then
echo "The file is NOT writable"
else
echo "The file is writable"
fi
이 제거'2>/dev/null'을 사용하면 (자),'mv'가 유용한 정규의 에러 메세지를 기입 할 수 있습니다. mv가 실패 할 수있는 다른 이유가 많이 있기 때문에 루트가 필요하다고 주장하는 것보다 낫습니다. –
"루트 필요"를 확인하려면 사용 권한을 수동으로 확인하려고 할 수 있지만 올바르게 수행하는 것이 반드시 간단한 것은 아닙니다. –