关于字体的使用。

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

关于字体的使用。

#1

帖子 oneleaf » 2005-10-21 8:57

写一个脚本,自动搜寻windows分区,复制相关字体到系统文件夹,并完成设置。写了一个简单的抛砖引玉。

代码: 全选

#!/bin/bash

function setfont()
{
 if [ $1 = "" ] ; then 
    return 1
 fi  
 
 FONTSDIR=${1}/`ls $1 |grep -i fonts`
 mkdir -p /usr/share/fonts/truetype/windows
 
 ls $FONTSDIR |grep -i tt[fc] | while read FONTNAMES ; do
    echo "copy "$FONTNAMES" to /usr/share/fonts/truetype/windows"
    cp -vu ${FONTSDIR}/${FONTNAMES} /usr/share/fonts/truetype/windows
 done
 chmod -R +755 /usr/share/fonts/truetype/windows
 mkfontscale /usr/share/fonts/truetype/windows
 mkfontdir /usr/share/fonts/truetype/windows 
 fc-cache -f  
 return 0
}

MOUNTDIR=/tmp/fontmount
mkdir -p $MOUNTDIR

fdisk -l /dev/[hs]d[a-z] | grep 'NTFS' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS ; do
    umount /dev/$WDISKS
    mount /dev/$WDISKS $MOUNTDIR -t ntfs -o auto,user,nls=utf8     
    WINDIR=`ls $MOUNTDIR |grep -i windows`  
    setfont $MOUNTDIR/$WINDIR
    if [ $0 = 1 ] ; then 
       umount /dev/$WDISKS	
       continue
    fi    
    umount /dev/$WDISKS	
    break
done

if [ $0 = 0 ]; then 
    mount -a
    exit 0
fi

fdisk -l /dev/[hs]d[a-z] | grep  'FAT' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS ; do 
    umount /dev/$WDISKS	
    mount /dev/$WDISKS $MOUNTDIR -t vfat -o auto,user,utf8
    WINDIR=`ls $MOUNTDIR |grep -i windows`
    setfont $MOUNTDIR/$WINDIR
    if [ $0 = 1 ] ; then 
       umount /dev/$WDISKS	
       continue;
    fi    
    umount /dev/$WDISKS	
    break
done

if [ $0 = 0 ]; then 
    mount -a
    exit 0
fi

exit 1
上次由 oneleaf 在 2005-10-21 10:39,总共编辑 4 次。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2005-10-21 9:26

能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#3

帖子 oneleaf » 2005-10-21 10:41

eexpress 写了:能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。
这个就不知道了,不过好像有系统可以实现,到后来就越听越少了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2005-10-21 10:46

提意见

代码: 全选

if [ $1 = "" ] ; then 
    return 1 
 fi 
这里应该出帮助提示。要不还不知道是执行了还是出错了。

代码: 全选

if [ $1 = "" ] ; then 
zenity --info --title="用法介绍: \
至少需要一个参数,指定字体名。 \
" 
   return 1 
 fi 
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#5

帖子 eexpress » 2005-10-21 10:51

提意见

代码: 全选

fdisk -l /dev/[hs]d[a-z]
没有出错处理

代码: 全选

$ fdisk -l /dev/[hs]d[a-z]
Cannot open /dev/hda
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#6

帖子 oneleaf » 2005-10-21 10:53

eexpress 写了:提意见

代码: 全选

if [ $1 = "" ] ; then 
    return 1 
 fi 
这里应该出帮助提示。要不还不知道是执行了还是出错了。

代码: 全选

if [ $1 = "" ] ; then 
zenity --info --title="用法介绍: \
至少需要一个参数,指定字体名。 \
" 
   return 1 
 fi 
那个是函数调用的,不需要帮助提示,没有参数的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#7

帖子 eexpress » 2005-10-21 10:53

提意见
ntfs和fat的2部分几乎一样。可以用变量混合处理。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#8

帖子 oneleaf » 2005-10-21 10:54

eexpress 写了:提意见

代码: 全选

fdisk -l /dev/[hs]d[a-z]
没有出错处理

代码: 全选

$ fdisk -l /dev/[hs]d[a-z]
Cannot open /dev/hda
不需要处理,我只要存在的windows分区
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#9

帖子 eexpress » 2005-10-21 10:54

那就是下面函数体后,还是加个参数判断提示。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#10

帖子 oneleaf » 2005-10-21 10:55

eexpress 写了:提意见
ntfs和fat的2部分几乎一样。可以用变量混合处理。
挂载的参数不一样,一起写还是要区分,算了。
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

#11

帖子 oneleaf » 2005-10-21 10:56

eexpress 写了:那就是下面函数体后,还是加个参数判断提示。
一运行就设置好了,不用什么参数的。
flying_ych
帖子: 10
注册时间: 2005-06-16 17:26

#12

帖子 flying_ych » 2005-10-30 9:19

eexpress 写了:能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。
我也很想知道!
回复