谁能告诉我为什么总是说目录绝对是不可写的?

$ dnam =“/home/bryan/renametest/C D”

#目录是否可写
误差= 0
如果[! -w $ dnam]
然后
#不可写。 pop 错误并退出。
回显“目录$ dnam不可写”
err = 1
科幻

最佳答案

您需要在$dnam周围加上双引号-如果没有双引号,它会被解释为两个单独的shell字,即“/home/bryan/renametest/C”和“D”,这将导致无效的测试表达式并因此失败。这应该工作:

if [ ! -w "$dnam" ]

@tink对[[ ]]的建议是进行这种测试的一种更干净的方法,但是仅在bash(以及其他具有扩展语法的shell)中可用。您得到[[: not found的事实意味着您使用的是相当基本的shell,而不是bash。

08-08 00:14