当我在shell脚本中调用函数时,它不起作用
testfunction
但如果我打电话给下面这样的功能
$(testfunction);
有什么想法?我在Ubuntu上运行bash shell
谢谢你, Sambhav
大家好,这是一个示例脚本和函数decl。并打电话。正如问题中提到的,函数调用 - 函数不起作用,但$(函数正在工作)
#!/bin/bash
TITLE=My Title";
########FUNCTIONS
### Function Declaration
test() { echo "echoing test"; }
cat << EOF <html> <head> <TITLE>"$TITLE"</TITLE>
</head>
</body>
### Calling the function here - Not working test
#### The Below function call is working $(test)
</body>
</html>
EOF
答案 0 :(得分:2)
$(cmd)
扩展为一个字符串,其中包含已执行cmd的结果。它通常不与函数一起使用,但它可以。请参阅此插图,它以两种样式调用该函数:
$ cat sample.sh
#!/bin/sh
bla() {
echo something
}
# print something
bla
# record something
BLA=$(bla)
echo recorded: $BLA
###
$ ./sample.sh
something
recorded: something
跟进你的评论,你的问题似乎就是&#34; here document&#34;与<<
一起使用。这里的文档基本上是一个多行字符串:
echo "this is a string, bla is not recognized as a function"
echo "this is a string, $(bla) executes the function and replaces the output"
cat << EOF
Multi Line
$(bla)
Document
EOF
或者你可以结束这里的文件:
cat << EOF1
<html><header><titl
<title>test</title></header>
<body>
EOF1
# this section is script code, not here-document
bla
#
cat << EOF2
</body></html>
EOF2