2

就这样。他们只是不会为我工作。这次我做错了什么?

    # nquo is: /home/bryan/renametest/C D/y z

    # script:
    dirn=dirname "$nquo"
    echo "dirn $dirn"
    bnam=basename "$nquo"
    echo "bnam $bnam"

运行结果:

    ./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
    dirn 
    ./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
    bnam 
4

1 回答 1

8

就目前而言,您的脚本正在尝试运行名为 in 的文件,$nquo首先将环境变量dirn设置为 value dirname,然后将变量bnam设置为 value basename。由于它不可执行,您会收到有关无法执行该文件的错误消息。

您大概打算在文件名上运行命令,这需要反引号或(最好)$(...)围绕它:

dnam=$(dirname "$nquo")
bnam=$(basename "$nquo")
于 2013-04-04T06:15:08.210 回答