#!/bin/bash
或者#!/bin/shif
[
-e
/etc/apache2/>
运行有错误,可以继续问我
#!/bin/bash#------------------------------------------------
trap "GO_IN" 2 3 15
TEST=0
GO_IN()
{
TEST=1
}
#------------------------------------------------
#及时响应模式
read_char()
{
SAVESTTY=`stty -g`
stty raw
stty -echo
dd if=/dev/tty bs=1 count=1 2>/dev/null
stty -raw
stty echo
stty $SAVESTTY
}
#------------------------------------------------
#选择Y or N的 *** 作
choice_yn()
{
STRING_CYN=$1
DEFAULT_ANS=$2
echo "$STRING_CYN[Y/N]:"
ANS=`read_char`
if [ "$ANS" = "" ]
then
ANS=$DEFAULT
fi
case $ANS in
Y|y|YES|yes)
return 0;;
N|n|NO|no)
return 1;;
esac
}
#------------------------------------------------
#退出动作
my_exit()
{
rm $$
trap 2 3 15
exit 0
}
#存储内容的文件
file_st=myfiletxt
#------------------------------------------------
#菜单
while :
do
cat <<MAYDAY
----------------------------------------------------------------------------------------------------
1:查询学生名单
2:添加学生名单
3:删除学生名单
Q:Quit
----------------------------------------------------------------------------------------------------
MAYDAY
echo "按提示选择[1-3,Q]>"
CHOICE=`read_char`
case $CHOICE in
1)clear
if [ ! -f $file_st ]
then
echo "对不去,没有添加任何名单!"
else
while read name_1 age_1 sex_1 mark_1
do
echo "$name_1,$age_1,$sex_1,$mark_1"
done<$file_st
fi
;;
2)
clear
P=1
while [ "$P" -eq 1 ]
do
echo "输入学生的姓名:"
read name
if choice_yn "学生姓名为$name,是否保存" "Y"
then
while [ "$P" -eq 1 ]
do
echo "输入学生的年龄:"
read age
if choice_yn "学生年龄为$age,是否保存" "Y"
then
while [ "$P" -eq 1 ]
do
echo "输入学生的性别:"
read sex
if choice_yn "学生性别为$sex,是否保存" "Y"
then
while [ "$P" -eq 1 ]
do
echo "输入名单备注:"
read mark
if choice_yn "名单备注为$mark,是否保存" "Y"
then
echo "正在保存全部信息,请勿退出"
echo "$name $age $sex $mark"|tee -a $file_st >/dev/null 2>&1
sleep 3
echo "保存完毕,按任意键返回主菜单"
P=0
read xssss
else :
fi
done
else :
fi
done
else :
fi
done
else :
fi
done
;;
3)
clear
echo "输入你想删除的信息的学生姓名:"
read delete_name
cat $file_st|grep $delete_name >/dev/null 2>&1
if [ "$" -eq "1" ]
then
echo "对不起,没有查询到相应的信息!"
else
sed "$delete_name" $file_st>myfile_1$$
cp myfile_1$$ $file_st
echo "删除成功!"
fi
;;
Q|q)my_exit;;
);;
esac
done
#!/usr/bin/expect
set timeout 10
spawn ssh pcs@111712
expect "Password"
send "密码\r"
expect ">"
send "ls;cd back/rate/;runsh\r"
expect eof
#!/bin/bash # 说明文件为SHELL脚本
if [ "$#" -ne 2 ]; then #判断如果脚本后面的参数不等于两个,则提示被退出
echo "use :chextensionsh zip rar"
exit 1
fi
# 查看当前目录下所有文件名为zip结尾的文件,并把每个找到的文件名字赋值给变量oldfilename。然后再使用sed命令把每个文件名字从zip变成rar,把这个新的名字变量赋值给newfilename;最后再使用mv命令对旧的文件改名字。
for oldfilename in $(find -name "\$1");do
newfilename=$(echo $oldfilename | sed "s/$1/$2/")
mv -i "$oldfilename" "$newfilename"
done
整个脚本的作用就是批量地把当前目录下的zip文件改名成rar,有点类似于rename命令。这样明白了吧?
#/bin/bash
echo -en "请输入数字:"
read i
#判断输入值大于1
if [ $i -ge 1 ]
then
echo -e "数\t平方\t立方"
for j in `seq 1 $i`
do
echo -e "$j\t$(($j$j))\t$(($j$j$j))"
done
else
echo "你输入值有错"
fi
将以上拷贝到shell_2sh中。
让shell_2sh 可执行: chmod a+x shell_2sh
用法:/shell_2sh
看到提示输入你的值即可。
#!/bin/bash
dir_source="/home/hnsd/workdata/"
yyyymmdd=`date +%Y%m%d`
data_time=`date +%p`
if [ "${data_time}" = "AM" ]; then
workdata=workdata1
dir_back="/home/hnsd/disk1backup/"
else
workdata=workdata2
dir_back="/dev/disk2backup/"
fi
tar zcvf ${dir_back}${yyyymmdd}_${workdata}targz ${dir_source}
crontab 写法为
12 脚本绝对路径
30 17 脚本绝对路径
[oracle@localhost test]$ cat csh
#!/bin/sh
b=0
echo "请出入n的值:"
read n
for ((a=1;a<=n;a++))
do
b=1/$a+$b
done
c=`bc<<!
scale=5
$b
!
`
echo "运算式是:$b"
echo "最后的结果是:$c"
[oracle@localhost test]$ sh csh
请出入n的值:
20
运算式是:1/20+1/19+1/18+1/17+1/16+1/15+1/14+1/13+1/12+1/11+1/10+1/9+1/8+1/7+1/6+1/5+1/4+1/3+1/2+1/1+0
最后的结果是:359768
[oracle@localhost test]$
“挂载光驱到/dec/cdrm文件下”不需要shell程序。
第一:你如果想要自动挂载,就通过/etc/fstab文件
第二:如果每次手动挂载,用 mount 命令,但是也最好在/etc/fstab文件有相应的设置。
补充回答
用for循环就可以很容易地实现对许多文件的格式转换或更名,自然是自动运行的,不用让人老等在旁边。
以上就是关于linux 怎么编写一个shell程序并执行全部的内容,包括:linux 怎么编写一个shell程序并执行、linux 编写一段shell程序,提供菜单显示选项,实现学生成绩的存储、根据用户的输入执行查询、添加功能、在linux中,如何编写一个shell脚本来实现如下功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)