bash shell脚本出现错误 第 16 行:[: d: 期待二元表达式

夕阳雨晴 2017-10-21 08:56:48

#!/bin/bash

WORK_DIR=/oldboy

create(){
i=1
while ($i<11)
do
cd $WORK_DIR && touch `tr -dc "a-z"</dev/urandom | head -c 10`_oldboy.html
i=$($i+1)
done
}


check(){
if [ - d $WORK_DIR ]; then
create
else
mkdir $WORK_DIR
create
fi
}

check



[root@bogon temp]# sh create-oldboy-html.sh
create-oldboy-html.sh: 第 16 行:[: d: 期待二元表达式
mkdir: 无法创建目录"/oldboy": 文件已存在
create-oldboy-html.sh:行7: 11: 没有那个文件或目录


麻烦可以解答并且有时间的朋友帮帮忙哈。
...全文
4214 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
曹宇飞丶 2017-10-23
  • 打赏
  • 举报
回复
目测是这两行代码其中一行有问题, /oldboy是绝对路径吗? 使用sh -x 调试运行脚本,看下哪一行代码有问题。 cd /oldboy cd $WORK_DIR
夕阳雨晴 2017-10-22
  • 打赏
  • 举报
回复
hi woshidahuaida: 楼上的解答完成正确,也解决了这个问题。 单独执行以下命令是可以生产特定文件的
cd /oldboy && touch `tr -dc "a-z"</dev/urandom | head -c 10`_oldboy.html 
但是放在上述的循环脚本中就会报错
cd $WORK_DIR && touch `tr -dc "a-z"</dev/urandom | head -c 10`_oldboy.html
create-oldboy-html.sh:行7: 11: 没有那个文件或目录
想咨询哈为何会报这个问题?又该如何解决呢?麻烦有经验的朋友解释哈,谢谢啦
bigPillow 2017-10-22
  • 打赏
  • 举报
回复
Hi sun1021873926, in check function: if [ - d $WORK_DIR ]; then Do u want to be: if [ -d $WORK_DIR ]; then between '-' and 'd' don't include any characters (even if space)
前  言 第1章 如何才能学好Shell编程 / 1 1.1 为什么要学习Shell编程 / 1 1.2 学好Shell编程所需的基础知识 / 1 1.3 如何才能学好Shell编程之“老鸟”经验谈 / 3 1.4 学完本书后可以达到何种Shell编程高度 / 5 第2章 Shell脚本初步入门 / 6 2.1 什么是Shell / 6 2.2 什么是Shell脚本 / 7 2.3 Shell脚本在Linux运维工作中的地位 / 8 2.4 脚本语言的种类 / 9 2.5 常用操作系统默认的Shell / 11 2.6 Shell脚本的建立和执 / 12 第3章 Shell变量的核心基础知识与实践 / 22 3.1 什么是Shell变量 / 22 3.2 环境变量 / 23 3.3 普通变量 / 31 3.4 变量定义技巧总结 / 40 第4章 Shell变量知识进阶与实践 / 41 4.1 Shell中特殊且重要的变量 / 41 4.2 bash Shell内置变量命令 / 52 4.3 Shell变量子串知识及实践 / 55 4.4 Shell特殊扩展变量的知识与实践 / 60 第5章 变量的数值计算实践 / 65 5.1 算术运算符 / 65 5.2 双小括号“(())”数值运算命令 / 66 5.3 let运算命令的用法 / 73 5.4 expr命令的用法 / 75 5.5 bc命令的用法 / 81 5.6 awk实现计算 / 83 5.7 declare(同typeset)命令的用法 / 83 5.8 $[]符号的运算示例 / 83 5.9 基于Shell变量输入read命令的运算实践 / 84 第6章 Shell脚本的条件测试与比较 / 92 6.1 Shell脚本的条件测试 / 92 6.2 文件测试表达式 / 97 6.3 字符串测试表达式 / 102 6.4 整数二元比较操作符 / 105 6.5 逻辑操作符 / 108 6.6 测试表达式test、[]、[[]]、(())的区别总结 / 120 第7章 if条件语句的知识与实践 / 121 7.1 if条件语句 / 121 7.2 if条件语句企业案例精讲 / 132 第8章 Shell函数的知识与实践 / 151 8.1 Shell函数的概念与作用介绍 / 151 8.2 Shell函数的语法 / 152 8.3 Shell函数的执 / 152 8.4 Shell函数的基础实践 / 153 8.5 利用Shell函数开发企业级URL检测脚本 / 155 8.6 利用Shell函数开发一键优化系统脚本 / 158 8.7 利用Shell函数开发rsync服务启动脚本 / 166 第9章 case条件语句的应用实践 / 169 9.1 case条件语句的语法 / 169 9.2 case条件语句实践 / 171 9.3 实践:给输出的字符串加颜色 / 176 9.4 case语句企业级生产案例 / 181 9.5 case条件语句的Linux系统脚本范例 / 187 9.6 本章小结 / 191 第10章 while循环和until循环的应用实践 / 192 10.1 当型和直到型循环语法 / 192 10.2 当型和直到型循环的基本范例 / 194 第11章 for和select循环语句的应用实践 / 217 第12章 循环控制及状态返回值的应用实践 / 249 第13章 Shell数组的应用实践 / 260 第14章 Shell脚本开发规范 / 279 第15章 Shell脚本的调试 / 286 第16章 Shell脚本开发环境的配置和优化实践 / 297 第17章 Linux信号及trap命令的企业应用实践 / 310 第18章 Expect自动化交互式程序应用实践 / 317 第19章 企业Shell面试题及企业运维实战案例 / 340 第20章 子ShellShell嵌套模式知识应用 / 377 附 录 Linux重要命令汇总 / 393

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧