小弟新学的shell脚本 作的第一个 清高手指点一下

sh/bash/dash/ksh/zsh等Shell脚本
回复
chengtao1633
帖子: 15
注册时间: 2009-06-21 19:12
联系:

小弟新学的shell脚本 作的第一个 清高手指点一下

#1

帖子 chengtao1633 » 2009-08-07 10:48

代码: 全选

#!/bin/bash
#这是一个添加字体和更改firefox 的flash乱码的脚本
#按任意键继续的函数
get_char()
{
       SAVEDSTTY=`stty -g`
       stty -echo
       stty raw
       dd if=/dev/tty bs=1 count=1 2> /dev/null
       stty -raw
       stty echo
       stty $SAVEDSTTY
} 
echo "#################################################################"
echo "这是一个添加字体和更改firefox的flash乱码的脚本,由于要使用超级管理员权限,所"
echo "使用这个脚本请使用 sudo ./ 防止由于权限问题出现的错误!"
echo "#################################################################"
#整体的循环
while [ 1 ]
do
  echo "请选择要使用的功能:1.添加字体 2.修复火狐flash乱码  3.退出"
  read -p "请输入:" ct
  if [ $ct -eq 1 ] ; then
  #添加字体
     echo "请事先把字体文件放到/tmp/ttf下如果没有这个目录创建这个目录"
     echo "按任意件继续:"
     char=`get_char`
     mkdir /usr/share/fonts/ttf
     cp /tmp/ttf/* /usr/share/fonts/ttf
     cd /usr/share/fonts/ttf
     chmod 744 *
     mkfontscale
     mkfontdir
     fc-cache -f -v
  elif [ $ct -eq 2 ] ; then
  #修改乱码
     cp /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak
     rm /etc/fonts/conf.d/49-sansserif.conf
  elif [ $ct -eq 3 ] ; then
  #退出
  echo "###################################谢谢你的使用!!!!!!!#########"
  echo "按任意键盘退出"
  char=`get_char`
  exit 0
  else
     echo "对不起你输入的选项错误" 
  fi
done 
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 小弟新学的shell脚本 作的第一个 清高手指点一下

#2

帖子 xiooli » 2009-08-07 11:56

那个getchar整的太复杂了,是不是想实现一个只按一个字符就行的read呀?

这样写:

代码: 全选

read -n1 -p "hello :" a
chengtao1633
帖子: 15
注册时间: 2009-06-21 19:12
联系:

Re: 小弟新学的shell脚本 作的第一个 清高手指点一下

#3

帖子 chengtao1633 » 2009-08-11 15:35

老大 那个是能按任意键继续的吗?
那个是我从网上找到的不过我看不大懂
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 小弟新学的shell脚本 作的第一个 清高手指点一下

#4

帖子 BigSnake.NET » 2009-08-11 15:46

read -s -n1
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复