2015-07-17shell脚本练习题

回复 收藏
脚本的功能:
脚本可以带参数也可以不带,参数可以有多个,每个参数必须是一个目录,脚本检查参数个数,若等于0,则列出当前目录本身;否则,显示每个参数包含的子目录。

参考答案
{{{密码回复可见}}}


2015-07-17 15:30 举报
已邀请:
0

googleqicq

赞同来自:

学习学习
0

siudern

赞同来自:

1
0

xiaobai

赞同来自:

···········
0

zhangrenpeng

赞同来自:

看看!
0

siudern

赞同来自:

#/bin/bash
if [[ $# -eq 0 ]]; then
    ls -ld `pwd`
else
    until [[ $# -eq 0 ]]
    do
        if [[ ! -d "$1" ]]; then
            echo "$1 is not dir"
            shift
        else
            ls -l $1 |grep '^d'
            shift
        fi
    done
fi
0

YZR

赞同来自:


0

shen502k

赞同来自:

111
0

xtboris

赞同来自:

1
0

Wagskun

赞同来自:

1
0

cypgs

赞同来自:

1
0

温柔的笑猫

赞同来自:

学习~
0

iwannachange

赞同来自:

阿斯达
0

wl11930728

赞同来自:

ddddddddd
0

佳生-Jason

赞同来自:

看看
0

llzdwyp

赞同来自:

学习学习
0

lky

赞同来自:

来学习了
0

ayuan124

赞同来自:

1
0

hkmaozi

赞同来自:

xuexi
0

渐行渐远

赞同来自:

不好记
0

shajoe

赞同来自:

tttttttttt
0

794046031@qq.co

赞同来自:

加油
0

iliuxu

赞同来自:

{:4_93:}
0

xueyongbo

赞同来自:

试试
0

哈哈琨少

赞同来自:

学习学习
0

SunyBome

赞同来自:

看看
0

乐橙306

赞同来自:

RE: 2015-07-17shell脚本练习题 [修改]
0

Linuxpp

赞同来自:

+1
0

Armani

赞同来自:

1
0

tjlygdx

赞同来自:

学习shell
0

wangdi244

赞同来自:

  1. #!/usr/bin/env python
  2. # coding=utf-8
  3. import tab  #命令补全模块
  4. import os

  5. input_msg = raw_input('请输入目录的绝对路径,并用逗号分开:')
  6. pathdir = input_msg.split(',')
  7. script_path = os.getcwd()

  8. def judge_dictory(dictory_path):
  9.     for root,dirname,filename in os.walk(dictory_path):
  10.         for dictory in dirname:
  11.              print (os.path.join(root,dictory))
  12.     return os.path.join(root,dictory)

  13. if len(pathdir) == 1 and '' in pathdir:
  14.     judge_dictory(script_path)
  15. else:
  16.     for path in pathdir:
  17.         judge_dictory(path)
0

哈哈琨少

赞同来自:

  1. #!/bin/bash
  2. if [ $# == 0 ]
  3. then
  4.     ls -ld `pwd`
  5. else
  6.     for i in `seq 1 $#`
  7.     do
  8.         n=`echo $@ | cut -d " " -f $i`
  9.         echo "ls $n"
  10.         m=`ls -l $n | grep '^d' | wc -l`
  11.         if [ $m -eq 0 ];then
  12.             echo "No directory"
  13.         else
  14.             ls -l $n | grep '^d'
  15.         fi
  16.     done
  17. fi

  18. 跟铭哥的差不多哈
0

ifconfig2

赞同来自:

1
0

wzwyql

赞同来自:

1
0

robert

赞同来自:

xiebuchulaizhiyoukaanl
0

北辰星

赞同来自:

学习
0

Shawn

赞同来自:

0

Rohero

赞同来自:

看看
0

yanggang

赞同来自:

kan
0

ldp840611

赞同来自:

看目的地
0

yangjian319

赞同来自:

学习过了。
0

shitukeji

赞同来自:

{:4_91:}
0

石头

赞同来自:

{:4_91:}
0

weifeng1463

赞同来自:

ok
0

hlymlv

赞同来自:

看看
0

prospect

赞同来自:

学习 学习
0

zql254

赞同来自:

本帖最后由 zql254 于 2016-1-6 21:58 编辑
  1. if [ $# -eq 0 ];then
  2.     ls -ld `pwd`
  3. else
  4.     for i in `seq 1 $#`;do
  5.         [ -d ${!i} ]&&ls -l ${!i}|grep ^d||echo "${!i}does not exist or is not a directory."
  6.     done
  7. fi
0

我是学渣

赞同来自:

{:4_99:}
0

HMOM

赞同来自:

if [ $# -eq 0 ];then
0

出VU时代

赞同来自:

学习了
0

loveyouhyf

赞同来自:

#!/bin/bash
if [ $# == 0 ]
then
    ls -ld `pwd`
else
    for i in `seq 1 $#`
    do
        echo $@
        n=`echo $@ | cut -d " " -f $i`
        ls $n
    done
fi
0

loveyouhyf

赞同来自:

本帖最后由 loveyouhyf 于 2016-1-9 22:03 编辑

#!/bin/bash
if [ $# -gt 0 ]; then
        i=$#
        echo "参数个数为$i个"
        for ((a=1;a<="$i";a++));do
        b=$a
        if [ -d ${!b} ];then
        ls -l ${!b}|grep "^d"
        else
        echo "参数$b不是一个目录"
        fi
        done
else
        echo "没有参数"
        ls .
fi

0

xteplinux

赞同来自:

{:4_91:}
0

licengceng

赞同来自:

学习
0

宇浩

赞同来自:

让我看看
0

casparcc

赞同来自:

学习学习
0

qiqige

赞同来自:

1
0

369666951

赞同来自:

看看
0

t0ny1988

赞同来自:

本帖最后由 t0ny1988 于 2016-1-19 15:45 编辑

#!/bin/bash
if [ $# -eq 0 ]
then
  ls -d `pwd`
fi

for mulu in $@
do
  if [ ! -d $mulu ]
then
   echo "只支持目录"
else
   tree -d $mulu
fi
   echo $mulu
done
0

skylake_

赞同来自:

kk
0

老咸菜

赞同来自:

1
0

方琪

赞同来自:

1
0

maria

赞同来自:

  1. #!/bin/bash

  2. if [ $# -eq 0 ]
  3. then
  4.    echo "没有参数!"
  5. else
  6.     for i in $@
  7.     do
  8.         if [ -d $i ]
  9.         then
  10.             /bin/find $i -maxdepth 1 -type d ;
  11.             echo "";
  12.         else
  13.            echo $i "不是目录!";
  14.            echo "";
  15.         fi
  16.      done
  17. fi
0

lin19890913

赞同来自:

看看
0

落涧飞鹰

赞同来自:

看看
0

thedawn

赞同来自:

1
0

奋斗的种子

赞同来自:

看看答案
0

郭贞

赞同来自:

学习
0

bbcw

赞同来自:

先看看答案,完全没思路
0

zxcv473199162

赞同来自:

学习
0

tichy

赞同来自:

+1
0

学习求生存 - openstack运维工程师

赞同来自:

学习来的
0

HwangChen

赞同来自:

look
0

Edison

赞同来自:

学习学习
0

hhx012

赞同来自:

看看
0

boy461205160

赞同来自:

复习
0

ifisis

赞同来自:

看看
0

亮亮

赞同来自:

一开始还没看懂需求{:4_102:}
0

亮亮

赞同来自:

加个判断目录是否存在是不是好点{:4_103:}
0

liushuangwei

赞同来自:

看看
0

kelake

赞同来自:

过来学习……
0

1101066558

赞同来自:

#!/bin/bash

cd /
echo $#
if [ $# -eq 0 ]; then
        ls
else
        while [ $# -ne 0 ]
        do
                ls $1
                shift
        done
fi
0

1101066558

赞同来自:

老师,你这种用法感觉是特地给出间接引用
0

lin13750529011

赞同来自:

谢谢
0

wangzai

赞同来自:

学习
0

cxiaodian

赞同来自:

GOOD
0

大仔黑黑

赞同来自:

对下答案
0

大仔黑黑

赞同来自:


  1. #!/bin/bash
  2. ##written by wangyl
  3. ##2016-04-06

  4. if [ $# -eq 0 ];then
  5.         ls -ld `pwd`
  6. else
  7.         for i in `seq 1 $#`;
  8.         do
  9.                 a=$i
  10.                 echo "ls ${!a}"
  11.                 ls -l ${!a} | grep '^d'
  12.         done
  13. fi
0

onlyweeds

赞同来自:

学习
0

linux-小莫

赞同来自:

学习
0

oldorab

赞同来自:

kk
0

duyanbin

赞同来自:

学习了
0

duyanbin

赞同来自:

#!/bin/bash

[ $# -eq 0 ] && ls `pwd` && exit

for dirs in "$@" ; do
        if  [ ! -d $dirs ] ; then
             echo "$dirs is not a directory"
             exit 1
        else
            find $dirs -maxdepth 1 -type d -exec ls -ld {} \;
        fi
done
0

小璇Linux

赞同来自:

看看
0

88888888

赞同来自:

[root@localhost mnt]# qemu-img create -f qcow2 -o preallocation=metadata  /data/kvm/xin02.qcow2 10G
Formatting '/data/kvm/xin02.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata'
[root@localhost mnt]# ls  /data/kvm/xin*
/data/kvm/xin02.qcow2  /data/kvm/xin.img



[root@localhost ~]# virt-install \
--name  xin1 \
--ram 628 \
--disk path=/data/xin02.qcow2,format=qcow2,size=10,bus=virtio
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location '/mnt/' \
--extra-args 'console=ttyS0,115200n8 serial'

说明:
--name  指定虚拟机的名字
--ram 指定内存分配多少
--disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 path=/data/test02.img,format=qcow2,size=7,bus=virtio
--vcpus 指定分配cpu几个
--os-type 指定系统类型为linux
--os-variant 指定系统版本
--network  指定网络类型
--graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式
--console 指定控制台类型
--location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,例如--location '/mnt/',        

配置NFS服务
[root@localhost ~]# yum install -y nfs-utils rpcbind
[root@localhost ~]# vim /etc/exports
/mnt 192.168.1.0/24
[root@localhost ~]# /etc/init.d/rpcbind restart
停止 rpcbind:                                             [确定]
正在启动 rpcbind:                                         [确定]
[root@localhost ~]# /etc/init.d/nfs restart
关闭 NFS 守护进程:                                        [确定]
关闭 NFS mountd:                                          [确定]
关闭 NFS 服务:                                            [确定]
Shutting down RPC idmapd:                                  [确定]
启动 NFS 服务: exportfs: No options for /mnt 192.168.1.0/24: suggest 192.168.1.0/24(sync) to avoid warning
                                                           [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[root@localhost ~]# showmount -e 192.168.1.188
Export list for 192.168.1.188:
/mnt 192.168.1.0/24
[root@localhost ~]# /etc/init.d/iptables stop
iptables:将链设置为政策 ACCEPT:nat mangle filter         [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]

nfs server 192.168.1.188
/mnt/images/install.img
ro
0

黑色的梦

赞同来自:

1
0

qq895933723

赞同来自:

kankan
0

自己定义

赞同来自:

学习学习
0

xufanyunwei

赞同来自:

学习
0

等风来

赞同来自:

学习
0

branttsai

赞同来自:

study,tks

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: