当前位置:  技术问答>linux和unix

简单shell脚本,求解释

    来源: 互联网  发布时间:2016-10-10

    本文导语:  分析下列shell脚本的功能:    count=$#    cmd=echo    while [ $count –gt 0 ]    do       cmd=”$cmd  $$count”       count=`expr  $count - 1`    done eval  $cmd 我在Linux运行了一下,知道它显示的是一个空行;如...

分析下列shell脚本的功能:

   count=$#
   cmd=echo
   while [ $count –gt 0 ]
   do
      cmd=”$cmd  $$count”
      count=`expr  $count - 1`
   done
eval  $cmd

我在Linux运行了一下,知道它显示的是一个空行;如果在“cmd=echo [参数] ”写上命令,就会被解释为相应执行命令
如:cmd=echo pwd ,就会显示当前路径
但是,我不知道这个程序的功能是什么!!!!!!!!!!!!

|
我看了 怎么觉得是把传给脚本的参数逆序显示出来呢
比如传给脚本2个参数A B
那么while会循环2次
cmd的结果是echo $2  $1

结果是你输入的A B 显示的结果是B A

|
count=$#
# 这个你知道吧?$#环境变量为输入的参数个数
   cmd=echo
# 这句,很简单吧?就是把echo赋值给一个变量cmd
   while [ $count –gt 0 ]
# $count的值和0比较,大于等于0则,循环
   do
      cmd=”$cmd  $$count”
# 这一句把那几个变量代入,至于$就是显示这个特殊字符$了
      count=`expr  $count - 1`
# 参数的个数减少1,也就是某一个变量减少吧,要用它来跳出循环
   done
eval  $cmd

|
eval  $cmd
就会把变量cmd的内容当命令执行

你如果你把cmd=echo改成cmd=echo pwd 这样的赋值是错误的
会导致cmd为空 pwd会直接执行 因此会显示当前路径
这样有空格的复制要加"" 即cmd="echo pwd"
你不要乱修改脚本

|
这样有空格的复制要加"" 即cmd="echo pwd"


主席说的这个是关键。。要作为一个字符串传递给cmd

    
 
 

您可能感兴趣的文章:

  • 小弟没写过shell,求解 linux shell 命令
  • Linux Shell编程从初学到精通 第四章课后习题2 求解
  • 关于linux shell的一个不明白的地方。求解
  • 求解Shell语句
  • 小弟求解LINUX下SHELL编程问题
  • 请问一个shell中如何获取这个shell自身抛出的错误? iis7站长之家
  • shell问题求解 关于变量定义的 谢谢!
  • shell 语言求解
  • linux shell 脚本求解? 多谢。
  • shell脚本编程求解? 多谢
  • 在线求解-shell编程-如何判断一个目录是空目录
  • shell 命令 求解
  • shell awk求解
  • shell编程求解
  • shell脚本 <鸟哥>书中内容 求解释
  • 新人 求解两个SHELL语句!请指点
  • 求解一shell语句
  • shell命令求解
  • 关于shell实现。。求解
  • 求解shell的一个具体思路跟写法。。求指教
  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 想用shell脚本定时执行另一个脚本
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3