shell函数问题
时间:2011-02-05
来源:互联网
初学shell函数,
在shell中定义如下函数:
foo() { echo "hello"; }
****************
如下调用:
$`foo`
出错,
$y=`foo`
$echo $y
hello
请问单独调用`foo`为什么会报错呢?
在shell中定义如下函数:
foo() { echo "hello"; }
****************
如下调用:
$`foo`
出错,
$y=`foo`
$echo $y
hello
请问单独调用`foo`为什么会报错呢?
作者: lmm2003 发布时间: 2011-02-05
你首先要让shell能够定位到foo所在的函数文件
方法是: . /<foo所在的函数文件路径>
之后才可以在命令行方式下调用
方法是: . /<foo所在的函数文件路径>
之后才可以在命令行方式下调用
作者: Wind_Runner 发布时间: 2011-02-06
直接运行foo就可以了,
作者: masmaster 发布时间: 2011-02-06
纯粹是按自己的臆想在那乱搞。
$`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
$`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
作者: steptodream 发布时间: 2011-02-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28