标签
|
搜索
|
RSS
Linux教程
Linux基础知识
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
基础知识
Linux业界
Linux系统
人物
Linux文化
Linux资讯
Linux综合
您现在的位置:
Linux教程
- Shell - shell - 获得一个变量的长度
shell - 获得一个变量的长度
添加记录: Linux 类别: Shell 发布日期: 2005.06.22
获得一个变量的长度
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名
就是说,现在有变量$name,我想取得其值的长度,应该怎么做?
这样:echo $name | wc -c | read asd
这样name变量的长度就读到asd变量了,但是会比实际的长度多1
还有一个更好的方法:echo $name | awk '{printf("%d",length($1))} | read asd
#!/bin/sh
echo -n "Input ID (Ex. : ca0001): "
read STR
name=$STR
echo ""
echo $name | awk '{printf("%d",length($1))}'| read length
echo $length
while [ "$length" != "6" ]
do
echo "Please input ID in correct format!"
read STR
name=$STR
done
echo "succeed"
echo $length的结果是什么?
换一种写法:
length=`echo $name | awk '{printf("%d",length($1))}'`
其中`号为“1”键左边的键
# name='Zhang lao san'
# echo $name | awk '{printf("%d",length($0))}' | read asd
# echo $asd
13
#
#
#感觉怎么样?
rain0216:
按照你的脚本的逻辑,如果首次输入的长度不是6是会死循环的呀。难道没有吗?
应该将
echo ""
echo $name | awk '{printf("%d",length($1))}'| read length
echo $length
放到while循环体里边才是。
不会啊,循环里面是交互的啊,只要符合条件就可以退出循环的
read name
asd=`echo $name|awk '{printf("%d",length($1))}'`
echo 你刚输的变量长度为$asd
刚刚加入,请各位多多指教!
前面的朋友说得没错,会死循环,变量$length应该在循环里面重新赋值!
各位,可以试一下下面的代码:
read name
len=`awk -v tname=$name 'BEGIN { print length(tname)}'`
print "Length is :" len
asd=`expr length $name`
echo $asd
怎么会不是死循环?按你脚本的逻辑,第一次进入循环的是非法串长,在循环体内又没有一条语句来修改这个非法串长就成了死循环,所以还是要将read name
echo $name |awk '{printf("%d",length($1))}' |read ad
放在循环内。
哦,是的,当时代码没有没有写完整,而我自己用的是完整的,所以就想当然以为这段也没错了。多谢各位提醒
ksh中:
echo ${#$name}
try this way :
#env $string |wc
Tags:
Shell
linux
顶一下
相关信息
shell - 很方便的两个shell script
shell - 合并某些行
shell - 合并两个文件
shell - 关于KSH中select建立菜单的问题
shell - 关于expr的用法
shell - 关于设置命令行提示符(PS1)
shell - 关于awk中计算正弦90度的问题
shell - 改变UNIX终端颜色
shell - 非交互方式改变登录用户密码
shell - 定制自己的linux应用环境
shell - 基于PPP协议的linux与Windows CE网络
shell - 恢复缺省bash提示符
shell - 禁止从一个IP登录的shell
shell - 将文件中的“ " 替换成“ "
shell - 将多个空格替换为一个空格
shell - 可否用SHELL实现对SQL进行查询,修改,删除等等呢
shell - 做到限时登录
Shell 编程(1)
Shell 编程(2)
Shell 编程(3)