分享
 
 
 

Unix编程/应用问答中文版---20.shellscript问题

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

作者:不祥 [文章出自: www.fanqiang.com]

20. shell script问题

20.1 如何获取一个字符串的长度

20.2 读超时自动使用缺省值

20.3

20.4 BASH中如何得到一个字符串的子串

20.5

20.6

20.7

20.8 使用tr命令加密文件

20.9 有哪些命令用于查找定位

20.10

20.11 如何将大写文件名转换为小写文件名

--------------------------------------------------------------------------

20. shell script问题

20.1 如何获取一个字符串的长度

A: Andrei Ivanov <iva@racoon.riga.lv>

expr `echo $string | wc -c` - 1

echo $string | awk '{ print length( $0 ); }'

/usr/ucb/expr length "$string"

expr "$string" : ".*"

echo "$string" | sed 's/./1+/g;s/+/ /;s/$/p/' | dc

A: http://www.linuxforum.net

假设是bash

$ string='1234567890'

$ echo ${#string}

10

$

20.2 读超时自动使用缺省值

Q: shell script编程,不介入expect、perl、tcl等类似工具。读等待60秒,超时则

自动使用缺省值。可以使用系统缺省外部命令,要求能广泛移植在常用Unix平台

A: CERNET 华中地区网络中心 PUE(UNIX环境程序设计)版 lookout

参看comp.unix.shell新闻组,下面以SPARC/Solaris 2.6为例

--------------------------------------------------------------------------

#! /sbin/sh

stty -icanon min 0 time 255

while true

do

/usr/bin/echo "Press a key or press ENTER to exit:\\c"

read key

if [ "$key" = "" ] ; then

echo "\\nYou press Enter or timeout"

break

else

echo "You press the key $key"

fi

done

stty sane

--------------------------------------------------------------------------

20.4 BASH中如何得到一个字符串的子串

A: loginlog@SMTH

BASH 2.0.3 以上版本

${var:offset:length}

20.8 使用tr命令加密文件

A: 水木清华 TheCool

著名的 rot13 密码, 通过把字母移动13个位置实现对文本的加密

tr "[a-m][n-z][A-M][N-Z]" "[n-z][a-m][N-Z][A-M]" < message > newmessage

然后可以用同样的命令进行解密

tr "[a-m][n-z][A-M][N-Z]" "[n-z][a-m][N-Z][A-M]" < newmessage > message

20.9 有哪些命令用于查找定位

A: 小四

type -a telnet

whereis telnet

which telnet

whatis telnet <=> man -k telnet

20.11 如何将大写文件名转换为小写文件名

A: 小四 <cloudsky@263.net>

如果要处理整个目录树的话,可以这样

find <target_dir> -exec sh -c 'mv -f "$0" `echo "$0" | tr "[A-Z]" "[a-z]"` > /de

v/null 2>&1' {} \\;

同理,将小写文件名转换为大写文件名如下

find <target_dir> -exec sh -c 'mv -f "$0" `echo "$0" | tr "[a-z]" "[A-Z]"` > /de

v/null 2>&1' {} \\;

这个办法有待修正,处理多层目录名本身带有大写字母的情况,有问题。比如存在如

下目录的时候,./A/B/C/D.txt。

A: Potash@www.linuxforum.net 2002-02-05 18:58

--------------------------------------------------------------------------

#! /bin/sh

# Usage: ./loworup.sh <-l | -u> <target_directory>

#

# 第二形参必须是目录,第一形参指定-l或-u

#

if [ $# -ne 2 ] ; then

echo "Usage: ${0} <-l | -u> <target_directory>"

exit 1

fi

if [ ! -d ${2} -o "${1}" != "-l" -a "${1}" != "-u" ] ; then

echo "Usage: ${0} <-l | -u> <target_directory>"

exit 1

fi

exec 1>/dev/null 2>&1

dir=`dirname "${2}"`

cd ${dir}

if [ "${1}" = "-l" ] ; then

base=`basename "${2}" | tr "[A-Z]" "[a-z]"`

else

base=`basename "${2}" | tr "[a-z]" "[A-Z]"`

fi

mv -f "`basename ${2}`" "${base}"

for entry in `find ${base}`

do

before="."

#

# 这个办法依赖for in语法,用空格做分隔符,所以不能处理那些本身名字带空

# 格的目录项,属于小BUG

#

for after in `echo "${entry}" | sed -e 's,/, ,g'`

do

tmp_entry="${before}/${after}"

if [ "${1}" = "-l" ] ; then

before=`echo "${tmp_entry}" | tr "[A-Z]" "[a-z]"`

else

before=`echo "${tmp_entry}" | tr "[a-z]" "[A-Z]"`

fi

mv -f "${tmp_entry}" "${before}"

done

done

--------------------------------------------------------------------------

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有