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

shell函数问题

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

    本文导语:  初学shell函数, 在shell中定义如下函数: foo() { echo "hello"; } **************** 如下调用: $`foo` 出错, $y=`foo` $echo $y hello 请问单独调用`foo`为什么会报错呢? | 纯粹是按自己的臆想在那乱搞。 $`foo` 出错, $y=`f...

初学shell函数,
在shell中定义如下函数:
foo() { echo "hello"; }
****************
如下调用:
$`foo`
出错,
$y=`foo`
$echo $y
hello
请问单独调用`foo`为什么会报错呢?

|
纯粹是按自己的臆想在那乱搞。

$`foo`
出错,
$y=`foo`
$echo $y
--------
我要向你反问一个问题
1。同样是调用为什么前面用$`foo`  后面用`foo` !  明显前面$`foo`是错的!

好了,解释一下
如果你直接
`foo`
这样就是调用函数了  简单的脚本就是这样 
#!/bin/sh
foo() { echo "hello"; }
`foo`

可是foo函数的返回值是hello 那么上面调用函数的地方就变成了hello
#!/bin/sh
foo() { echo "hello"; }
hello

这下可好了 脚本会把hello当成命令来执行! 可是你认为你的系统会有hello这个命令吗?!
自然脚本回报找不到hello这个命令! 如果你把hello换成系统存在的命令 这个脚本是会执行成功的。

而你的第二种方法
$y=`foo`
这样直接把foo的返回值赋给变量y了  当然没有问题了
然后你又
echo $y
这样会输出变量y的值  会输出hello

同理 既然你知道用echo 为什么在第一种调用里 你不用echo `foo`呢  同样会执行成功!


刚开始学习shell的时候 最好不要按自己的想法去乱来  一定要找个基础教程 一边学一边练
等你有一定基础的时候 在一步一步的去深入研究!
推荐一个教程http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html

    
 
 

您可能感兴趣的文章:

  • shell 函数中的用exit时,什么情况下仅仅退出函数,什么情况下退出整个shell程序?
  • shell脚本如何调用另外一个shell脚本的函数?
  • 很菜,shell脚本中怎么写函数,怎么使用带参数的函数???
  • shell函数如何load?
  • 急:unix的shell脚本中,定义了一个函数getDate(),在后面的执行命令参数用要使用这个函数的返回值,应该怎么写?
  • shell脚本里的函数怎么调用??
  • shell函数如何返回字符串
  • 有关在makefile中使用shell函数的问题
  • shell获取main函数的返回值
  • 求救!makefile 中shell函数
  • shell函数求救
  • shell中函数的使用
  • shell内能不能写入函数?
  • PHP中exec函数和shell_exec函数的区别
  • Unix下System函数实现中为何要使用shell去调用执行程序?
  • 函数调用Shell命令问题
  • shell 函数返回值
  • shell 编程:写一个功能函数,打印根目录下所有文件大小
  • 很菜的,能否在我的C函数里调用SHELL吗?
  • linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(在线)?
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • shell变量和子shell的问题请教
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • vim问题,怎么不启动shell窗口,而只是把shell结果放到vim自身的command 栏里去?
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • shell:sql问题,如何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命令选项及实例
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 小弟没写过shell,求解 linux shell 命令


  • 站内导航:


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

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

    浙ICP备11055608号-3