我正在学习Linux中的脚本shell。现在我在函数的创建上遇到了一些问题。我在做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它不调用函数,但打印所有命令。为什么?
发布于 2015-03-10 17:04:14
如果我正确地解释了您的代码,您就创建了两个文件:
votolaurea.lib,包含函数votolaurea;test.sh)。记住:
test.sh中使用votolaurea.lib中的任何函数(或其他定义),您需要使用source命令(或其等效的.)来获取它;votolaurea(),就必须将其放在引号字符串之外;$1、$2等将参数传递给函数。考虑到前面的要点,您应该对代码进行一些更改。
votolaurea.lib
#votolaurea.lib
votolaurea() {
echo $(($1 * 11 / 3 ))
}test.sh
#!/bin/bash
source ~/imieiscript/votolaurea.lib
echo "Give me the number"
read media
echo "Il voto sarà $(votolaurea $media)";发布于 2015-03-10 15:09:03
若要将字符串作为命令执行,应使用``或$()
echo `votolaurea.lib $media`
echo $(votolaurea.lib $media)https://stackoverflow.com/questions/28967124
复制相似问题