编写一个shell脚本,脚本名为shell,执行该脚本的功能是:判断第一个位置参数是否是

“/root”目录,若是则列出该目录下所有文件(包括隐含文件),并且将显示的内容输出到“13out”文件中,若不是“/root”目录则提示“第一个位置参数不是/root目... “/root”目录,若是则列出该目录下所有文件(包括隐含文件),并且将显示的内容输出到“13out”文件中,若不是“/root”目录则提示“第一个位置参数不是/root目录!”程序结束。然后判断第二个及后面各个位置参数,若是普通文件则显示其内容,若是目录文件则提示该文件为目录文件,否则提示该文件既不是普通文件也不是目录文件。根据题意编写好脚本保存之后并执行,且要求将第二个其以后的位置参数的普通文件的内容追加到“13out”文件中。并写出你执行该脚本的命令: 展开
 我来答
sunnyhouyq
推荐于2018-03-07 · TA获得超过648个赞
知道小有建树答主
回答量:515
采纳率:100%
帮助的人:514万
展开全部
#!/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
huangyhlover
2013-12-20
知道答主
回答量:20
采纳率:0%
帮助的人:14.4万
展开全部
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

没测试过 自己试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浦疏贤085
2013-12-20 · TA获得超过291个赞
知道答主
回答量:149
采纳率:100%
帮助的人:124万
展开全部
#!/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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式