Linux第二次实验:shell编程笔记。

Linux 第二次实验是 shell 编程。以前没接触过,做实验的时候一点一点摸索,又查书有搜索的。终于勉强做完了。。。我先记录我学到、接触到的。最后再附上完整代码。


用 shell 如何获取用户名和主机名可以这样:
用户名是 $LOGNAME 或者 $USER

主机名是 $HOSTNAME


而输出时间的方法是:
echo "DATE: `date +%m/%d/%Y`"

这样就会输出 DATE:10/31/2012


读取用户输入的方法是
read varname

之后就可以 $varname 是使用了。


shell 里的 if 语句比较特别,我现在还是不太懂。。。
case 语句是:
case $choice in
A)
B)
esac
其中 A B 分别为 $choice 可能的值。每个分支的最后一条语句需要以两个分号结束。

创建带有指定权限的文件夹可以这样
mkdir --m=XXX filename
或者
mkdir -m XXX filename
其中 XXX 就是权限表示。

如果要测试某个文件是否是目录或是否有某个权限,可以用 if 这样

if test -[o] filename
then
    something
fi
其中 [o] 是要测试的内容, -d 是目录 -r 是可读 -w 是可写 -x 是可执行

要将某文件内容全部替换为大写,或是某些字符串操作,可用 sed 等工具完成
全替换大写是

sed 's/[a-z]*/\U&/g' file
其中的 & 应该是指向匹配结果本身。因此就是将匹配结果转换成大写

要返回某目录下某个类型的文件数量的话,可以这样:
ls -l
会显示出文件的详细信息,开头的
drwxrwxrwx
-rwxrwxrwx
等就是文件的类型及权限信息。
目录文件以 d 开头,普通文件以 - 开头,符号链接文件以 l 开头
然后就可以这样

res=`ls -l dir | grep "^d" | wc -l`

其中 grep 统计以 d 开头。 wc 计数。-l 参数是统计换行符

最后附上代码代码很烂,欢迎拍砖指正。

#!/bin/bash
while true
do
echo USER:$LOGNAME "	" HOST:$HOSTNAME "	DATE:`date +%m/%d/%Y`"
echo "——————————————————————————————————————————————————————————"
echo "		A: 创建子目录并复制文件				"
echo "		B: 文件权限测试					"
echo "		C: 文件字符转换					"
echo "		D: 文件总数统计					"
echo "		E: 文本文件行数统计				"
echo "		Q: 退出系统					"
echo "——————————————————————————————————————————————————————————"
read choice
case $choice in
A)
mkdir --m=755 $USER
echo $get
if test -d $USER
then
	cp file1 $USER
	cp file2 $USER
fi;;
B)
echo "请输入要测试的文件"
read testFile
res=$testFile
if test -r $testFile
then
	res+=" 可读"
else
	res+=" 不可读"
fi
if test -w $testFile
then
	res+=" 可写"
else
	res+=" 不可写"
fi
if test -x $testFile
then
	res+=" 可执行"
else
	res+=" 不可执行"
fi
echo $res;;
C)
sed 's/[a-z]*/\U&/g' file1
echo file1
sed 's/[a-z]*/\U&/g' file2
echo file2;;
D)
echo "请输入要测试的目录"
read testDir
echo $testDir
res=`ls -l $testDir |grep "^[dl]" | wc -l`
echo $testDir "目录中有 " $res " 个目录文件和符号链接文件";;
E)
echo "请输入要统计的文件"
read testFile
res=`wc -l $testFile`
echo $testFile "文件有" $res "行";;
Q)
exit 0;;
esac
done


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值