分页: 1 / 1

[问题]怎么取文件名,后缀前边的串 ?

发表于 : 2007-07-25 21:11
iblicf
想写个处理latex文件的脚本... 类似:

代码: 全选

#!/bin/bash
E_BADARGS=65        # Missing command-line arg.
if [ -z "$1" ]      # Check for (required) command-line arg.
then
  echo "Usage: $0 <tex_filename>"
  exit $E_BADARGS
fi

#deal suffix-----------------------

if [ -f "$1" ]
then
  latex $1 && dvipdfmx "$1.dvi" && evince "$1.pdf"
else
  echo "Invalid file_name !"
fi
latex 处理 ( foo/foo.txt/foo.tex/foo.xxx )这样的文件名都生成 foo.dvi..如果不带后缀的文件名,上边的命令可用,如果带后缀 。。。所以,怎么取文件名 "foo"(后缀前边的字符,或者没后缀的)? 谢谢

发表于 : 2007-07-25 22:54
iblicf
OK :)

代码: 全选

#!/bin/bash
E_BADARGS=65        # Missing command-line arg.

if [ -z "$1" ]      # Check for (required) command-line arg.
then
  echo "Usage: $0 <tex_filename>"
  exit $E_BADARGS
fi

#dealwith suffix
fname=$1
fname=${fname%.*}

if [ -f "$1" ]
then
  latex $1 && dvipdfmx "$fname.dvi" && evince "$fname.pdf"
else
  echo "Invalid file_name !"
fi

发表于 : 2007-07-26 12:51
eexpress
如果是tar.gz。你不死了。呵呵。

%和%%不同的。试试。 :lol:

发表于 : 2007-07-26 13:31
iblicf
不会阿,,就是要取最后一个点前边的.. :)

发表于 : 2007-07-26 13:36
eexpress
是啊。我就说,你取得的不一定是文件名啊。比如 libpig.tar.gz这样的。你难道取libpig.tar作文件名啊。

发表于 : 2007-07-26 13:40
iblicf
没错,,因为latex 处理( libpig.tar.gz )出来的文件名就是 libpig.tar.dvi