编写一个shell脚本,脚本名为shell,执行该脚本的功能是:判断第一个位置参数是否是
“/root”目录,若是则列出该目录下所有文件(包括隐含文件),并且将显示的内容输出到“13out”文件中,若不是“/root”目录则提示“第一个位置参数不是/root目...
“/root”目录,若是则列出该目录下所有文件(包括隐含文件),并且将显示的内容输出到“13out”文件中,若不是“/root”目录则提示“第一个位置参数不是/root目录!”程序结束。然后判断第二个及后面各个位置参数,若是普通文件则显示其内容,若是目录文件则提示该文件为目录文件,否则提示该文件既不是普通文件也不是目录文件。根据题意编写好脚本保存之后并执行,且要求将第二个其以后的位置参数的普通文件的内容追加到“13out”文件中。并写出你执行该脚本的命令:
展开
3个回答
展开全部
#!/bin/bash
if [ $# -lt 1 ];then
echo "usage $0 [path or file]"
exit -1
fi
if [ "$1" = "/root" ];then
ls -a $1 | tee 13out
else
echo "第一个位置参数不是/root目录!"
exit -2
fi
argc=0
for i in $@
do
argc=$(($argc+1))
if [ $argc -eq 1 ];then
continue
fi
if [ -f $i ];then
echo "$i 的文件内容:" | tee -a 13out
cat $i | tee -a 13out
elif [ -d $i ];then
echo "$i 为目录文件"
else
echo "$i 既不是普通文件也不是目录文件"
fi
done
展开全部
if($1=='/root') ##第一个参数是/root
then
cd /root ##切换到/root目录
ls -a|tee -a 13out ##显示/root下所有文件并追加到13out
for i in $* ; do ##循环其它参数
if(i -ne 1) ##略过第一个参数
then
if( -f $i) ##如果是文件 打印文件内容并输出到13out
then
cat $i|tee -a 13out
elif(-d $i) ##如果是目录输出提示
then
echo $i为目录文件
else ##其它情况输出提示
echo $i既不是普通文件也不是目录文件
fi
done
else ##如果第一个参数不是/root 打印信息并退出
echo "第一个位置参数不是/root目录!"
exit 0
fi
没测试过 自己试试吧
then
cd /root ##切换到/root目录
ls -a|tee -a 13out ##显示/root下所有文件并追加到13out
for i in $* ; do ##循环其它参数
if(i -ne 1) ##略过第一个参数
then
if( -f $i) ##如果是文件 打印文件内容并输出到13out
then
cat $i|tee -a 13out
elif(-d $i) ##如果是目录输出提示
then
echo $i为目录文件
else ##其它情况输出提示
echo $i既不是普通文件也不是目录文件
fi
done
else ##如果第一个参数不是/root 打印信息并退出
echo "第一个位置参数不是/root目录!"
exit 0
fi
没测试过 自己试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/bin/bash
(( $# > 0 )) || exit
[[ ! $1 =~ ^[/]*root$ ]] && echo "第一个位置参数不是/root目录" && exit
ls -a /$1 > 13out
shift
while (( $# > 0 ))
do
[ -f $1 ] && echo "File "$1":" >> 13out && cat $1 >> 13out && shift && continue
[ -d $1 ] && echo "this dir" && shift && continue
echo "该文件($1)既不是普通文件也不是目录文件"
shift
done
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询