我刚开始用bash编程,有一件事我想不通......这是我写的脚本:
#!/bin/bash
FILE=test.txt
test_file () {
if [ -e "$FILE" ]; then
echo "$FILE exists"
else
echo "$FILE does not exist"
return 1
fi
return
}
$(test_file)
当我运行脚本(命名为test)时,它会输出以下错误消息:
"./test: line 16: test.txt: command not found"
令我惊讶的是,当我退出“功能部件”并通过退出替换返回时,这样:
#!/bin/bash
FILE=test.txt
#test_file () {
if [ -e "$FILE" ]; then
echo "$FILE exists"
else
echo "$FILE does not exist"
exit 1
fi
exit
#}
#$(test_file)
它没有任何投诉。即使我将带有函数调用的函数粘贴/拉入另一个脚本(其工作正常)以及其他函数,它也可以工作。
我错过了什么?
答案 0 :(得分:4)
您正尝试将函数的输出作为命令运行。只需删除$(...)
。
#!/bin/bash
FILE=test.txt
test_file () {
if [ -e "$FILE" ]; then
echo "$FILE exists"
else
echo "$FILE does not exist"
return 1
fi
return
}
test_file