小菜问菜问题了..希望各位帮忙回答

小菜问菜问题了..希望各位帮忙回答

刚学shell编程 问些菜问题
1. 如何判断输入是3位数字(就是控制输入只能是3位数字)
2. 如何判断输入格式是前3位是数字第4位是-后4位还是数字
3.如何判断输入只包含空格或者字母
4.如何使当输出写入文件成功后显示"输入成功",而写入不成功时不显示"输入成功"

   希望大家不吝赐教 先谢过... :D
[quote:558c72db68="kkstar"]刚学shell编程 问些菜问题
1. 如何判断输入是3位数字(就是控制输入只能是3位数字)
[/quote]
正则表达式里表示“3位数字”:
[code:1]'[0-9][0-9][0-9]'[/code:1]
代码测试:
[code:1]
#!/usr/bin/env bash

read first

echo $first |grep '[0-9][0-9][0-9]' >/dev/null
echo $?
[/code:1]
引用:
2. 如何判断输入格式是前3位是数字第4位是-后4位还是数字
[code:1]
#!/usr/bin/env bash

read num

echo $num | awk -F'-' '{print $1}' |grep '[0-9][0-9][0-9]' >/dev/null
field_1="$?"

echo $num | awk -F'-' '{print $2}' |grep '[0-9][0-9][0-9][0-9]' >/dev/null
field_2="$?"

if [ X"${field_1}" == X"0" -a X"${field_2}" == X"0" ]
then
        echo right
else
        echo wrong
fi
[/code:1]
引用:
3.如何判断输入只包含空格或者字母
[code:1]
[/code:1]
引用:
4.如何使当输出写入文件成功后显示"输入成功",而写入不成功时不显示"输入成功"
判断exit status($?变量),然后做一个if语句就行了。参考1,2.
在试验. 先谢过