按照你到思路,你的shell程序主要有两个错误:
1,变量ft赋值错误;按照你的写法,ft的结果是:file /etc,因为等式右边加的是单引号,是字符串原样赋值,而并没有取到file这个命令到结果,正确写法是:ft=$(file "$NAME")
2,第二个问题是格式问题,小问题。case语句中的备选项,如“$NAME:directory”,冒号后要加一个空格,因为file /etc这条命令的结果是/etc: directory,注意冒号后面是有一个空格的,所以case语句中到备选项格式要与之匹配。
由于你写的程序有这两个错误,解释执行时,会转到case语句中到最后一项输出,即输出:/etc is Other file type
我所说到已经经过本人亲自测试,所用系统为Fedora 12.
希望能帮到你。
echo input file name:
read NAME
这两句可以改为read -p “input file name:” NAME
错误再次,"$NAME: ASCLL"*)应该为"$NAME: ASCLL"),不带后面的*号。
ft='file "$NAME"'改为ft=`file "$NAME"`,`为数字1前面的那一个按键的小点。
另外 echo \"$NAME\" is ASCLL text可以写为
echo “$NAME is ASCLL text.”
ft='file "$NAME"'
这一句你输入错了,应该是ft=`file "$NAME"`,不是单引号,是1左边tab上面的那个键,表示执行file "$NAME"命令
ft='file "$NAME"'
这一行,最外面的不是单引号是数定1键边的那个``,是用做命令替换的。