我正在尝试学习bash脚本。我写了一个脚本,将空格转换为文件名中的下划线。它工作正常。到目前为止一切都很好。
我的脚本可能会进入某个目录,其中包含另一个用户拥有的文件(例如root或www-data)。
我的脚本无法幸运地转换这些文件:)但我更喜欢警告信息,例如“你需要root权限”等。
这是转换块:
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
你能帮我找到一个正确的方法来返回“需要root权限”输出吗?
答案 0 :(得分:0)
您是否已获得脚本的执行权限
chmod u+x your_script.sh
./your_script.sh
答案 1 :(得分:0)
尝试查看文件是否可写:
if [ ! -w "$file" ]
then
echo "The file is NOT writable"
else
echo "The file is writable"
fi
答案 2 :(得分:0)
试试这个:
if [ x"`whoami`"x != x"root"x ]
then
: # do something
fi