关于shell-----4

来源:互联网 发布:淘宝提现手续费是多少 编辑:程序博客网 时间:2024/06/13 14:39
linux词典:检测某个单词是否是词典的单词
#!/bin/bash
#name:checkword.sh
word=$1
grep "^$1$" /usr/share/dict/british-english -q
if [ $? -eq 0 ]; then
echo $word is a dictionary word;
else
echo $ is not a dictionary word;
fi
脚本的使用方式:./check word.sh word
在grep中。^标记着单词的开始,$标记着单词的结束
-q 禁止产生任何输出
另外我们也可以使用拼写检查命令aspell来检查某个单词是否在词典中:
#!/bin/bash
#nane:aspellcheck.sh
word=$1
output=`echo \"$word\" | aspell list`
if [-z $output];then
echo $word is a dictionary word;
else
echo $word is not a dictionary word;
fi
-z 是用来却动$output是否为空
列出文件中以特定单词起头的所有单词;
$ look word filepath
或者使用
$grep "^word" filepath
默认情况下,如果没有给出文件参数,look命令会使用默认词典(/usr/share/dict/words)并且返回输出。
交互输入自动化
工作原理
#!/bin/bash
#name:interactive.sh
read -p "Enter number:" no;
read -p "Enter name:" name;
echo You have enter $no, $name
就可以完成一个简单的交互了
使用expect来完成交互
#!/bin/bash
#name:automate_expect.sh
spawn ./interactive.sh
expect "Enter number:"
send "1\n"
expect "Enter name:"
send "hello\n"
expect eof
在这个脚本中:
spawn 参数指定需要自动化哪一个命令;
expect参数提供需要等待的消息;
send是要发送的消息;
expect eof 指定命令交互结束;
利用并行进程加速命令执行
#!/bin/bash
#name:generate_checksums.sh
PIDARRAY=()
for file in File1.iso File2.iso
do
md5sum $file &
 PIDARRAY+=("$!")
done
wait ${PIDARRAY[@]}
工作原理:&这个操作符会让shell置于后台运行脚本,这意味着一旦循环结束,脚本就会退出,而md5sum命令仍在后台运行,为了避免这种情况,我们使用$!来获取进程PID,在base中,$!保存着最近一个后台进程的PID。我们将这些PID放入PID数组,然后使用wait命令等待这些进程结束。
原创粉丝点击