用shell脚本执行了如下语句:#!/bin/bashread-p"pleaseinputyourname:"-t10nameread-p"pleaseinputyournumber:"-t10numberread-p"pleaseinlutyourpasswd:"-t10passwdif[!-z"$name"-a!-z"$number"-a!-z"$passwd"]theny=$(echo$number|sed's/[0-9]//g')if[-z"$y"]thenfor((i=1;i/dev/nullecho$passwd|/usr/bin/passwd--stdin$name$1&>/dev/nulldoneelseecho"Error!"exit2fielseecho"Error!!"exit1fi想实现的效果:第一个ifelse语句;如果$name$number$passwd中有一个为空,则提示:Error!并退出;如果都不为空则执行y=$(echo$number|sed's/[0-9]//g')。第二个ifelse语句:如果$y为空,则执行:for循环语句;如果不为空则提示:Error!并退出。但是输入$name$number$passwd为空之后,报错了,信息如下:root@ubuntu:/home/baochunfen#bashfor04.shpleaseinputyourname:pleaseinputyournumber:pleaseinlutyourpasswd:for04.sh:line10:((:i
2 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
5.0.2测试没问题bash版本多少?z"$name"-a!-z"$number"-a!-z"$passwd你是不是这么写的?如果是的,那就这个错了,注意分割符号if[!-z"$name"-a!-z"$number"-a!-z"$passwd"]我一直以为是粘贴错误(¨̮)
添加回答
举报
0/150
提交
取消