use*_*539 1 linux shell dirname
就这样。他们只是不会为我工作。这次我做错了什么?
# nquo is: /home/bryan/renametest/C D/y z
# script:
dirn=dirname "$nquo"
echo "dirn $dirn"
bnam=basename "$nquo"
echo "bnam $bnam"
Run Code Online (Sandbox Code Playgroud)
运行结果:
./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
Run Code Online (Sandbox Code Playgroud)
就目前而言,您的脚本正在尝试$nquo先将环境变量dirn设置为value dirname,然后再将变量bnam设置为value 来运行in命名的文件basename。由于它不是可执行文件,因此您会收到有关无法执行文件的错误消息。
您大概打算在文件名上运行命令,这需要反引号或(最好)$(...)在文件周围:
dnam=$(dirname "$nquo")
bnam=$(basename "$nquo")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |