当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : shell 程序错,
帖子发表于 : 2008-05-30 16:50 

注册: 2007-09-12 13:16
帖子: 94
送出感谢: 0 次
接收感谢: 0 次
最近学习编写shell 脚本,发现了些问题;
问题 1,>

#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
    break
done
echo "You have selected $var"

保存为 11.sh ,并将 11.sh 改为可执行文件
运行:
...................................................................
wyb@wyb-desktop:~/桌面$ chmod +x 11.sh
wyb@wyb-desktop:~/桌面$ ./11.sh
What is your favourite OS?
./11.sh: 3: select: not found
./11.sh: 4:     break: not found
./11.sh: 5: Syntax error: "done" unexpected
.........................................................................
请问这是为什么????


还有另一个程序也运行不成功,请问程序那里有错误???
...........................................................................................
#!/bin/sh

#备份目录函数
backup_dir()
{
dir_test
echo "backing ...."
tar xzvf /tmp/back.tar.gz $DIRECTOPY

}

#恢复目录函数
restore_dir()
{
dir_test
echo "正在恢复"
tar xzvf /tmp/backup.tar.gz
}

#验证目录函数
dir_test()
{
#输入要备份的目录名
echo -e "please intput the directory name of backup file :\c"
#度目录名
read DIRECTORY

#判断是否是目录
if [!-d &DIRECTORY]
then
echo "sorry ,&DIRECTORY is not a directory"
exit 1
fi
cd $DIRECTORY
}

clear
#ANS = y
while [&ANS = Y -o &ANS = y]

do
echo "======================================================="
echo "= backup-Restore Menu = "
echo "-------------------------------------------------------"
echo " 1:Backup Directory "
echo " 2:restore Directory "
echo " 0: Exit "
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo -e "please input a choice (0-2): \c"

read CHOICE
case "$CHOICE" in

1) backup_dir ;;
2) restore_dir ;;
0) exit 1 ;;
*) echo "Invalid choice!"
exit 1 ;;
esac

if [$? -ne 0]
then
echo "Program encounter error!"
exit 2
else
echo "Operate sucessfully !"
fi

echo -e "would you like to continue ? y/Y to continue ,any other key to exit :\c"

read ANS

clear
done

...................................................................
运行时,提示:
[: 74: missing ]
./myshell.sh: 74: ANS: not found
./myshell.sh: 74: ANS: not found

请指点一下《《《,谢谢!!!!


_________________
./configure --prefix =/usr/local/filename
make make install make clean
make uninstall

CC =gcc
all:
$(CC) -o hello hello.c `pkg-config --cflags --libs gtk+-2.0`


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-30 17:22 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
应该是默认shell的问题,把第一行的改成#!/bin/bash试试。
ps:最好明确指明解析的shell,不要用sh这样的,因为不同的系统可能默认的shell不同。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-31 14:04 

注册: 2008-04-12 10:08
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
第一个 用bash就可以

第二个看看我修改的吧
#!/bin/bash
backup_dir()
{
dir_test
echo "backing..."
tar -zcvf /tmp/back.tar.gz $DIRECTORY
}

restore_dir()
{
dir_test
echo "restoring.."
tar -zxvf /tmp/back.tar.gz
}

dir_test()
{
echo -e "please input the directory name of backup file"
read DIRECTORY

if [ ! -d $DIRECTORY ]; then
echo "sorry,$DIRECTORY is not a directory"
exit 1
fi
cd $DIRECTORY
}

clear

ANS=y
while [ $ANS = y -o $ANS = Y ];
do
echo "======================================"
echo "= backup - restore Menu ="
echo "--------------------------------------"
echo "1:baskup Directory"
echo "2:restore Directory"
echo "0:Exit"
echo "++++++++++++++++++++++++++++++++++++++"
echo -e "please input achoice(0-2):"

read choice
case $choice in
1)
backup_dir
;;
2)
restore_dir
;;
0)
exit 1
;;
*)
echo "Invalid choice!"
exit 1
;;
esac
if [ $? -ne 0 ]; then
echo "error"
else
echo "success"
fi

echo -e "y to continue, other to exit"


read ANS
clear
done


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-06-06 12:06 

注册: 2007-09-12 13:16
帖子: 94
送出感谢: 0 次
接收感谢: 0 次
谢谢!!


_________________
./configure --prefix =/usr/local/filename
make make install make clean
make uninstall

CC =gcc
all:
$(CC) -o hello hello.c `pkg-config --cflags --libs gtk+-2.0`


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译