[英]function doesn't work in script shell
我正在学习Linux中的脚本外壳。 现在我在创建函数时遇到了一些问题。 我正在使用CentOS。
这是函数的代码:
#votolaurea.lib
votolaurea() {
voto=$(($voto * 11))
voto=$((voto /3))
echo "Il voto sarà $voto";
}
这是调用该函数的脚本
#!/bin/bash
~/imieiscript/votolaurea.lib
echo "Give me the number"
read media
echo 'votolaurea.lib $media'
但是输出是:
Give me the number
3 //this is my number in input
votolaurea.lib $media
它不调用函数,但会打印所有命令。 为什么?
如果我正确解释了您的代码,则创建了两个文件:
votolaurea.lib
,包含函数votolaurea
; test.sh
)。 请记住:
test.sh
任何函数(或其他定义)存在于votolaurea.lib
,则需要使用到源它 source
的命令(或它的等效.
); votolaurea()
,则必须将其放在加引号的字符串之外; $1
, $2
等传递给函数。 考虑到以上几点,您应该对代码进行一些更改。
#votolaurea.lib
votolaurea() {
echo $(($1 * 11 / 3 ))
}
#!/bin/bash
source ~/imieiscript/votolaurea.lib
echo "Give me the number"
read media
echo "Il voto sarà $(votolaurea $media)";
要将字符串作为命令执行,应使用``
或$()
:
echo `votolaurea.lib $media`
echo $(votolaurea.lib $media)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.