由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Mac上的bash一问
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
今天有个程序,是这样的
一个文件define.sh
test_func() {
echo " in test func: $1 $2"
}
主文件test.sh
for .... do
echo "in loop"
ret="$(test_func $1 $2)"
done
./test.sh不好用。显示完in loop就停在那里。
改成
for .... do
echo "in loop"
test_func $1 $2
done
好用。但是我需要返回的结果啊。咋办呢?
f*******t
发帖数: 7549
2
$()别加引号
b***i
发帖数: 3043
3
我这里出了很多问题,有些代码没有写,这里补上
首先,我的问题出在grep --color什么的,导致死机, 所以我加入了调试信息,这样
写的
echo "********$1 $2 $3"
结果脚本的名字显示出来了
test.sh a b c
但是,最奇怪的是,竟然显示另一个脚本的名字
1000.sh a b c
这让我觉得非常奇怪。当然,Mac的bash版本很低,是吧。

【在 f*******t 的大作中提到】
: $()别加引号
f*******t
发帖数: 7549
4
不好意思我实在看不懂你想说什么……

【在 b***i 的大作中提到】
: 我这里出了很多问题,有些代码没有写,这里补上
: 首先,我的问题出在grep --color什么的,导致死机, 所以我加入了调试信息,这样
: 写的
: echo "********$1 $2 $3"
: 结果脚本的名字显示出来了
: test.sh a b c
: 但是,最奇怪的是,竟然显示另一个脚本的名字
: 1000.sh a b c
: 这让我觉得非常奇怪。当然,Mac的bash版本很低,是吧。

m*****n
发帖数: 3575
5
ret=`test_func $1 $2`
用左上角那个小顿点
d***a
发帖数: 13752
6
这是正解。用双`号得到返回值。

【在 m*****n 的大作中提到】
: ret=`test_func $1 $2`
: 用左上角那个小顿点

m*****n
发帖数: 3575
7
对,$([command string])是不知哪个版本起的新语法。
我就一直用`[command string]`

【在 d***a 的大作中提到】
: 这是正解。用双`号得到返回值。
1 (共1页)
进入Programming版参与讨论