即使我输入了确切的路径,Unix安装程序也找不到文件路径

前端之家收集整理的这篇文章主要介绍了即使我输入了确切的路径,Unix安装程序也找不到文件路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试修改更新Flash的现有脚本,但安装程序无法正常工作.

我一直收到以下错误.

installer:错误指定的包路径无效:’/ Volumes / Flash Player / Install Adob​​e Flash Player.app/Contents/MacOS/Adobe Flash Player Install Manager’.

如果我在文件路径的末尾将其修改为include.pkg,它也不起作用.

这是脚本的其余部分:

#!/bin/sh
# Script to download and install Flash Player.
# Only works on Intel systems.
#

dmgfile="flash.dmg"
volname="Flash"
logfile="FlashUpdateScript.log"
echo "Updating Flash player…"
# Are we running on Intel?
if [ '`/usr/bin/uname -p`'="i386" -o '`/usr/bin/uname -p`'="x86_64" ]; then
    # Get the latest version of Flash Player available from Adobe's About Flash page.
    latestver=`/usr/bin/curl -s http://www.adobe.com/software/flash/about/ | sed -n '/Safari/,/<\/tr/s/[^>]*>\([0-9].*\)<.*/\1/p'`
    # Get the version number of the currently-installed Flash Player,if any.
    if [ -e "/Library/Internet Plug-Ins/Flash Player.plugin" ]; then
    currentinstalledver=`/usr/bin/defaults read /Library/Internet\ Plug-Ins/Flash\ Player.plugin/Contents/version CFBundleShortVersionString`
    else
    currentinstalledver="none"
    fi
    echo "Installed version:                 $currentinstalledver"
    echo "Currently last version to install: $latestver"
# Compare the two versions,if they are different of Flash is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestver}" ]; then
    echo "UPDATING…"
    /bin/echo "`date`: Current Flash version: ${currentinstalledver}" >> ${logfile}
    /bin/echo "`date`: Available Flash version: ${latestver}" >> ${logfile}
    /bin/echo "`date`: Downloading newer version." >> ${logfile}
    /usr/bin/curl http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_osx.dmg -o flash.dmg
    /bin/echo "`date`: Mounting installer disk image." >> ${logfile}
    /usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep Flash | awk '{print $1}') -quiet
    /usr/bin/hdiutil attach flash.dmg -nobrowse -quiet
    /bin/echo "`date`: Installing..." >> ${logfile}
    /usr/sbin/installer -pkg /Volumes/Flash\ Player/Install\ Adobe\ Flash\ Player.app/Contents/MacOS/Adobe\ Flash\ Player\ Install\ Manager -target /
    /bin/sleep 10
    /bin/echo "`date`: Unmounting installer disk image." >> ${logfile}
    /usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep ${volname} | awk '{print $1}') -quiet
    /bin/sleep 10
    /bin/echo "`date`: Deleting disk image." >> ${logfile}
    /bin/rm ${dmgfile}
    newlyinstalledver=`/usr/bin/defaults read /Library/Internet\ Plug-Ins/Flash\ Player.plugin/Contents/version CFBundleShortVersionString`
        if [ "${latestver}" = "${newlyinstalledver}" ]; then
            /bin/echo "`date`: SUCCESS: Flash has been updated to version ${newlyinstalledver}" >> ${logfile}
            echo "SUCCESS: Flash has been updated to version ${newlyinstalledver}"
        else
            /bin/echo "`date`: ERROR: Flash update unsuccessful,version remains at ${currentinstalledver}." >> ${logfile}
            /bin/echo "--" >> ${logfile}
            echo "ERROR: Flash update unsuccessful,version remains at ${currentinstalledver}."
        fi
    # If Flash is up to date already,just log it and exit.       
    else
        /bin/echo "`date`: Flash is already up to date,running ${currentinstalledver}." >> ${logfile}
        /bin/echo "--" >> ${logfile}
        echo "Flash is already up to date,running ${currentinstalledver}."
    fi
else
/bin/echo "`date`: ERROR: This script is for Intel Macs only." >> ${logfile}
echo "ERROR: This script is for Intel Macs only."
fi
您需要确认路径的每个段都具有允许您写入该目录及其下方任何目录的权限.将以下脚本保存到PATH中的目录中(/usr/local / bin是合适的)或将其保存到/ tmp目录中并使用完整路径.
cat pathChecker.sh    
#!/bin/bash

path2chk="${@?usage:${0##*/} /path/to/check}"
if ! [[ -d "${path2chk}" ]] ; then
   echo "no directory access to ${path2chk}"
   echo "checking all elements anyway"
fi

echo "${path2chk}"\
| sed 's/\//\n/g' \
| while read pathElem ; do
    testPath="${testPath+${testPath}/}${pathElem}"
    #dbg echo "ls -ld \"$testPath\""
    ls -ld "$testPath"
done


chmod +x pathChecker.sh
pathChecker.sh '/Volumes/Flash Player/Install Adobe Flash Player.app/Contents/MacOS/Adobe Flash Player Install Manager'

应该显示列表

drwxr-x-r-x ..... /Volumes
drwxr------ ..... /Volumes/Flash Player   # bzt!
. . . .

编辑此处还可以查看问题的更一般说明:

How to solve Insecure world writable dir /usr in PATH,mode 040777 warning on Ruby?

IHTH

原文链接:https://www.f2er.com/bash/387007.html

猜你在找的Bash相关文章