2014-1-3 shell练习题

回复 收藏
写一个脚本实现如下功能:  输入一个数字,然后运行对应的一个命令。显示命令如下:*cmd meau**  1---date 2--ls 3--who 4--pwd
当输入1时,会运行date, 输入2时运行ls, 依此类推。

参考脚本:
{{{密码回复可见}}}


2014-01-03 10:02 举报
已邀请:
0

乐宝儿

赞同来自:

#! bin/bash

read -p "Input a number:" a
case $a in
1)
    date
    ;;
2)
    ls
    ;;
3)
    who
    ;;
4)
    pwd
    ;;
*)
    echo:"*cmd meau**"
    ;;
esac

0

SHMILY

赞同来自:

本帖最后由 SHMILY 于 2014-1-4 23:31 编辑

#这是个shell脚本练习题
#! /bin/bash
read -p "请输入数字1-4:" a
case $a in
        1)
                date
                ;;
        2)
                ls
                ;;
        3)
                who
                ;;
        4)
                pwd
                ;;
esac
0

chekir

赞同来自:

本帖最后由 chekir 于 2014-1-6 14:05 编辑
  1. #! /bin/bash
  2. echo "*Cmd meau*"
  3. echo "1--date;2--pwd;3--who;4--pwd"
  4. while :; do
  5. read -p "Please input a Num:" i
  6. if [ $i -eq 1 ]; then
  7.     echo `date`
  8. elif [ $i -eq 2 ]; then
  9.         echo `ls`
  10. elif [ $i -eq 3 ]; then
  11.         echo `who`
  12. elif [ $i -eq 4 ]; then
  13.         echo `pwd`
  14. else
  15.     echo 'Please input 1-4,Thanks!'
  16. fi
  17. done
0

tulip

赞同来自:

#!/bin/bash

read -p "Please input a number between 1 and 4 :" i

case $i in
1)
        date
        ;;
2)
        ls
        ;;
3)
        who
        ;;
4)
        pwd
        ;;
*)
        echo "The number you input is invalid! Please input again."
        ;;
esac
echo "*cmd meau**  1---date 2--ls 3--who 4--pwd"
0

larson

赞同来自:

方法一:if
#!/bin/bash
#this is command list
read -p 'please input a numbaer 1-4:' i
if [ $i -eq 1 ]; then
   date +%c
elif [ $i -eq 2 ]; then
   ls
elif [ $i -eq 3 ]; then
   who
elif [ $i -eq 4 ]; then
   pwd
else
    echo 'please input a number 1-4:'
fi

----------------------------------------------------------------------------------------------------------------------------
方法二: case

#!/bin/bash
read -p "please input a number 1-4:" n
case $n in
   1)
     date +%c
    ;;
   2)
      ls
    ;;
   3)
      w
    ;;
   4)
     pwd
   ;;
   *)
    echo 'please input a number 1-4:'
esac

0

双双

赞同来自:

#!  /bin/bash/
#输入一个数字,然后运行对应的一个命令。显示命令如下:*cmd meau**  1---date 2--ls 3--who 4--pwd
read -p "输入一个数字" n
case $n
1)  date
;;
2) ls
;;
3) who
;;
4) pwd
;;
*) echo "输入有误";
;;
esac
0

good

赞同来自:

看看
0

路过

赞同来自:

1
0

ocean

赞同来自:

[root@OceanV sh]# cat case.sh
#!/bin/bash
#输入一个数字,然后运行对应的一个命令。
#显示命令如下:*cmd meau**  1---date 2--ls 3--who 4--pwd
#当输入1时,会运行date, 输入2时运行ls, 依此类推。
echo   "*cmd meau**  1---date 2--ls 3--who 4--pwd"
read -p "please input a number(1-4):" i
case $i in
1)
date
;;
2)
ls
;;
3)
who
;;
4)
pwd
;;
*)
echo "illegal input,please check!"
;;
esac
0

luzhen521

赞同来自:

1111
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

楓瀛夢鞢

赞同来自:

read -p "Please input a num,range 1-4 :" n
case `echo $n` in
        1)
echo $(date)
;;
        2)
echo $(ls)
;;
        3)
echo $(who)
;;
        4)
echo $(pwd)
;;
        *)
echo "error,please input a num again,range 1-4"
esac
0

轩鹏

赞同来自:

111
0

木字当头

赞同来自:

0

zyfeifie

赞同来自:

#!/bin/bash
echo "please input your cmd num:"
echo "cmd  1--date 2--ls 3--who 4--pwd"
read num;
case $num in
1)
date ;;
2)
ls ;;
3)
who ;;
4)
pwd ;;
*)
echo "it is not the right cmd numuber"
esac
0

鸵鸟

赞同来自:

xx
0

Louis

赞同来自:


#!/bin/bash
## This script is for run command through a number in list.
## Writed by Louis on 2014/08/31 10:25

if_num(){
    m=`echo $1|sed 's/[0-9]//g'`
    if [ -z $m ]; then
        return 0
    else
        return 2
    fi
}

echo "Menu"
echo "***********"
echo "1:date"
echo "2:ls"
echo "3:who"
echo "4:pwd"
echo "***********"

while :; do
    read -p "Please input a number(1-4): " n
    if if_num $n; then
        if [ $n -ge 1 ] && [ $n -le 4 ]; then
        case $n in
            1)
                date
                exit
                ;;
            2)
                ls
                exit
                ;;
            3)
                who
                exit
                ;;
            4)
                pwd
                exit
                ;;
        esac
        else
            echo "The number you input is out of range!"
            continue
        fi
    else
        echo "You should input a number!"
        continue
    fi
done
0

huifeidexiaxia

赞同来自:

学习
0

齐天大圣

赞同来自:

#!/bin/bash

echo "*cmd meau**    1--date
                     2--ls
                     3--who
                     4--pwd"
read -p "plz input a number(1-4) :" n

case $n in
        1)
          date
          ;;
        2)
          ls
          ;;
        3)
          who
          ;;
        4)
          pwd
          ;;
        *)
          echo "Input a number!eg.1-4"
           ;;
esac
0

nihao426181

赞同来自:

看答案{:7_180:}
0

lidunhuai

赞同来自:

学习学习!
0

xuyl

赞同来自:

学习,学习。。。。。
0

王肖强

赞同来自:

  1. #!/bin/bash
  2. # Test script.
  3. # Wirten by Wangxiaoqiang 2014-12-01.

  4. read -p "Please input number: " num
  5. case $num in
  6.   1)
  7.     date
  8.      ;;
  9.   2)
  10.     ls
  11.      ;;
  12.   3)
  13.     who
  14.      ;;
  15.   4)
  16.     pwd
  17.      ;;
  18.   *)
  19.     echo "Hello shell"
  20.      ;;
  21. esac
0

aqi

赞同来自:

#!/bin/bash
echo "************"
echo "* cmd meau *"
echo "* 1--date  *"
echo "* 2--ls    *"
echo "* 3--who   *"
echo "* 4--pwd   *"
echo "************"
read -p "please input your choice: " num
case $num in
        1)
                date
        ;;
        2)
                ls
        ;;
        3)
                who
        ;;
        4)
                pwd
        ;;
esac
0

yaabb163

赞同来自:

dddddddddddd
0

cmzsteven

赞同来自:

{:4_91:}
0

zhangw

赞同来自:

q
0

qq20847697

赞同来自:

#!/bin/bash
#
function select_command()
{
case $1 in
1)
date
;;

2)
ls
;;

3)
who
;;

4)
pwd
;;
*)
echo "please enter a number less than 5"
;;
esac
}

read -p "*cmd meau**  1---date 2--ls 3--who 4--pwd :" n
select_command $n
0

hehong

赞同来自:

#!/bin/bash
echo "*cmd menu* 1-date 2-ls 3-who 4-pwd"
read -p "please input a number between 1 to 4:" i
case $i in
1)
        date
        ;;
2)
        ls
        ;;
3)
        who
        ;;
4)
        pwd
        ;;
*)
        echo "The number you input is invalid! please input again"
        ;;
esac
0

dantes

赞同来自:

while : ;
do
echo "*cmd meau**  1---date 2--ls 3--who 4--pwd"
read -p  "please write 1-4:" n
case  $n  in
1)
echo  "date"
;;
2)
echo  "ls"
;;
3)
echo "who"
;;
4)
echo  "pwd"
;;
*)
exit
;;
esac
done
0

hangtiangazi

赞同来自:

看看  。。。
0

pykihwfn

赞同来自:

看看
0

苏苏苏苏

赞同来自:

支持阿铭,支持linux
0

cisco12355074

赞同来自:

{:5_121:}学习学习
0

cisco12355074

赞同来自:

{:5_121:}吼吼吼吼吼吼,研究一下
0

cisco12355074

赞同来自:

#!/bin/bash
read -p "please input a number 1-4:" n
if [ $n -eq 1 ]; then
   date
elif [ $n -eq 2 ]; then
   ls
elif [ $n -eq 3 ]; then
   who
elif [ $n -eq 4 ]; then
   pwd
else
   echo `please input a number 1-4:`
fi
0

一岁拽起

赞同来自:

看看做的怎么样
0

qin521ne

赞同来自:

xuexile
0

一笑而过

赞同来自:

刚刚又看了一次shell的课程,来试试水,哈哈!
0

hyc123

赞同来自:

看看
0

哈哈琨少

赞同来自:

学习学习
0

llzdwyp

赞同来自:

#!/bin/bash
while:
      do
         read -p "请输入数字1-4:" n
      case $n in
                1)
                date
                exit
                ;;
                2)
                ls
                exit
                ;;
                3)
                who
                exit
                ;;
                4)
                pwd
                exit
                ;;
                *)
                echo "输入的数字有误,重新输入:"
                ;;
        esca
done         
0

andreking

赞同来自:

学习下
0

鑫柏

赞同来自:

不知道写的怎么样,现丑了
#!/bin/bash
echo "*cmd meau**
1---date
2--ls
3--who
4--pwd"
read -p "please input a number:" n
case $n in
1)
date
;;
2)
ls
;;
3)
who
;;
4)
pwd
;;
esac
0

Armani

赞同来自:


read -t 10 -p  "Please input  a number from '1-4':"  n
case  $n in
  1)
    date
    exit
    ;;
  2)
    ls
    ;;
  3)
    who
    ;;
  4)
    pwd
    ;;
  *)
    echo  "*cmd  meau**"
   ;;
esac
0

wangdi244

赞同来自:

  1. #!/usr/bin/env python
  2. # coding=utf-8

  3. import os
  4. import sys

  5. print '-----*cmd menu*-----'
  6. print '1---date'
  7. print '2---ls'
  8. print '3---who'
  9. print '4---pwd'
  10. print '--------------------'
  11. while True:
  12.     try:
  13.         input = int(raw_input('璇疯緭鍏ヤ竴涓?暟瀛?'))
  14.     except KeyboardInterrupt:
  15.         sys.exit('\n')
  16.     if input == 1:
  17.         print os.system('date')
  18.     if input == 2:
  19.         print os.system('ls')
  20.     if input == 3:
  21.         print os.system('who')
  22.     if input == 4:
  23.         print os.system('pwd')
0

chenqi

赞同来自:

查看
0

307141950

赞同来自:

read -p "please enter 1 2 3 4:" n case "$n" in         1)date;;         2)ls;;         3)who;;         4)pwd;;         *);; esac
0

shajoe

赞同来自:


read -p "input num:" n
case $n in
1)
date
;;
2)
ls
;;
3)
who
;;
4)
pwd
;;
*)
echo "input error"
;;
esac

0

渐行渐远

赞同来自:

0

liang1990

赞同来自:

#/bin/bash
echo "*cmd meau**  1---date 2--ls 3--who 4--pwd"
read -p "输入1-4:" n
case $n in
1)
  date
;;
2)
   ls
;;
3)
  who
;;
4)
  pwd
;;
esac
0

ifconfig2

赞同来自:

1
0

放牛

赞同来自:

{:7_173:}
0

翟厚翔

赞同来自:

#!/bash/bin  read -p  "Please input number:" a case $a in 1)  date ;; 2)    ls ;; 3) who ;; 4) pwd ;; esac
0

Rohero

赞同来自:

xuexi
0

ldp840611

赞同来自:

看目的地
0

石头

赞同来自:

{:4_91:}
0

hlymlv

赞同来自:

本帖最后由 hlymlv 于 2016-1-11 17:30 编辑

#!/bin/bash
echo "please select which do you want to running:"
echo "please enter \"Enter\" to show menu:"
select n in date ls who pwd quit
do
case $n in
date)
date
;;
ls)
ls
;;
who)
who
;;
pwd)
pwd
;;
quit)
echo "Bye."
exit
;;
esac
echo "please select which do you want to running:"
echo "please enter \"Enter\" to show menu:"
done额,跑题了


0

licengceng

赞同来自:

学习
0

rolay8

赞同来自:


  1. #!/bin/bash
  2. read -p "cmd menu:1-date 2-ls 3-who 4-pwd:  " commd
  3. case $commd in
  4.     1)
  5.     date +%T
  6.     ;;
  7.     2)
  8.     ls
  9.     ;;
  10.     3)
  11.     who
  12.     ;;
  13.     4)
  14.     pwd
  15.     ;;
  16.     *)
  17.     echo "please input 1-4"
  18.     ;;
  19. esac
0

t0ny1988

赞同来自:

#!/bin/bash
echo "1--date 2--ls 3--who 4--pwd"

select ml in 1 2 3 4
do
case $ml in
      1)
      date
      ;;
      2)
      ls
      ;;
      3)
      who
      ;;
      4)
      pwd
      ;;
      *)
      echo " 1 2 3 4 only "
esac
done
0

thedawn

赞同来自:

1
0

lin19890913

赞同来自:

看看
0

落涧飞鹰

赞同来自:

看看
0

jokerhuman

赞同来自:

学习
0

xteplinux

赞同来自:

{:4_91:}
0

北辰星

赞同来自:

学习
0

riluozhiyue

赞同来自:

学习
0

lyhabc

赞同来自:


#! bin/bash

read -p "please  input a number  *cmd meau**  1---date 2--ls 3--who 4--pwd :" a
case $a in
1)
    date
    ;;
2)
    ls
    ;;
3)
    who
    ;;
4)
    pwd
    ;;
*)
    echo:"*cmd meau**"
    ;;
esac
0

我是学渣

赞同来自:

{:4_99:}
0

乐橙306

赞同来自:

1
0

gxp2008

赞同来自:

read -p "Input number *cmd meau**:" n
case $n in
     1)
         date
         ;;
     2)
         ls
         ;;
     3)
         who
         ;;
     4)
         pwd
         ;;
     *)
         echo "Input number is not meau"
         ;;
esac
0

zmh0415

赞同来自:

#!/bin/bash

read -p "input cmd number:" cmd
    case "$cmd" in
             1)
                /bin/date
                ;;
             2)
                /bin/ls
                ;;
             3)
                /usr/bin/who
                ;;
             4)
               /bin/pwd
               ;;
             *)
               echo $"Usage: $0 {1|2|3|4}"
esac
exit $?
0

木头爱木头媳妇

赞同来自:

@
0

wangxinpeng

赞同来自:

ok
0

陈龙

赞同来自:

学习
0

陈龙

赞同来自:

学习
0

a57601247

赞同来自:

#!/bin/bash

read -p "please input a number: " a
case $a in
1)
   date
   ;;
2)
   ls
   ;;
3)
   who
   ;;
4)
   pwd
   ;;
*)
   echo "cmd meau"
   ;;
Esac
0

kongfanqian

赞同来自:

可以了
0

opensky

赞同来自:

tulip 发表于 2014-1-8 17:12
#!/bin/bash

read -p "Please input a number between 1 and 4 :" i

这段写得不错, 简洁直观, 也考虑了错误处理。
0

qiqige

赞同来自:

。。
0

ggangelo

赞同来自:

#/bin/bash
####ss
##by Lv.
read -p "input your words to select: " n
case $n in
    1)
     date
     ;;
    2)
     ls
     ;;
    3)
     who
      ;;
    4)
     pwd
     ;;
    *)
    echo "only 1|2|3|4 can be input,please retry it"
     ;;
esac
0

qq895933723

赞同来自:

kankan
0

duyanbin

赞同来自:

#!/bin/sh

cat <                 *cmd menu*
        1.---date
        2.---ls
        3.---who
        4.---pwd
eof

while [ 1 ] ; do
        read -p "Please input a number==>" n
                case $n in
                  1) date;;
                  2) ls;;
                  3) who;;
                  4) pwd;;
                  *) exit 1
                esac
done
0

lerchi

赞同来自:

学习思路
0

lerchi

赞同来自:

#/bin/bash #case while : ; do read -p "please in put a number :" a case $a in   1)  date ;;   2) ls ;; 3) who ;; 4) pwd ;; *) echo "Please input a number: 1-4" ;; esac done
0

wangzai

赞同来自:

学习
0

jibenru

赞同来自:

pp
0

wsw13640218682

赞同来自:

  1. #!/bin/bash
  2. ####test 1 to 4 option
  3. ###by Wang
  4. while :;
  5. do
  6. read -p "input 1 to 4 between:" a
  7. n=`echo $a |sed 's/[^0-9]//g'`
  8. case $n in
  9.   1)
  10.   echo "*cmd meau** : `date`"
  11.   exit
  12.   ;;
  13.   2)
  14.   echo  "*cmd meau**: `ls`"
  15.   exit
  16.   ;;
  17.   3)
  18.   echo "*cmd meau**: `who`"
  19.   exit
  20.   ;;
  21.   4)
  22.   echo "*cmd meau**: `pwd`"
  23.   exit
  24.    ;;
  25.   *)
  26.   echo "u input is not for us option"
  27.   if [ -z $n ]
  28.   then
  29.   echo "please input again"
  30.   elif [ $n -gt 5 ]
  31.   then
  32.   exit
  33.   fi
  34.   ;;
  35. esac
  36. done
0

branttsai

赞同来自:

study, tks
0

alvinnull

赞同来自:

xuexi
0

smatch

赞同来自:

  1. #/bin/bash

  2. while [[ 1=1 ]]
  3. do
  4. read -p "请输入一个数字1---date 2--ls 3--who 4--pwd:" n
  5. if [[ $n -eq 1 ]]
  6. then
  7.     date
  8.     break
  9. elif [[ $n -eq 2 ]]
  10. then
  11.     ls
  12.     break
  13. elif [[ $n -eq 3 ]]
  14. then
  15.     who
  16.     break
  17. elif [[ $n -eq 4 ]]
  18. then
  19.     pwd
  20.     break
  21. else
  22.     echo
  23. fi
  24. done
0

loveangeler

赞同来自:

#!/bin/bash
#命令选择
read -p "*cmd meau**  1---date 2--ls 3--who 4--pwd:  " cmd
if [  $cmd == 0 ]; then
        echo "Plesae input number 1-4"
elif [ $cmd == 1 ]; then
        /bin/date
elif [ $cmd == 2 ]; then
        /bin/ls
elif [ $cmd == 3 ]; then
        /usr/bin/who
elif [ $cmd == 4 ]; then
        /bin/pwd
else
        echo "Plesae input number 1-4"
fi
0

jxcia2018

赞同来自:

#!/bin/bash
##0529
## this is a cmd menu;
echo 1---date 2--ls 3--who 4--pwd
read -p "please input a number:" i
if [ $i -eq 1 ]
then date
elif [ $i -eq 2 ]
then ls
elif [ $i -eq 3 ]
then who
elif [ $i -eq 4 ]
then pwd
else
     exit
fi
0

yangjian319

赞同来自:

学习一下。

回复帖子,请先登录注册

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