在Bash场景中如何使用Cat通过函数创建文件

时间:2018-11-01 14:04:08

标签: bash function variables syntax cat

我正在尝试创建一个允许我向其发送两个变量的函数。 我的代码:

#!/bin/bash
function myfunc{
cat > file.xml << EOFcat
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x$1'/>
<product id='0x$2'/>
</source>
</hostdev>
EOFcat
}
trigger="191a:8003";
vID=$(lsusb | grep $trigger | cut -d ':' -f2 | cut -d ' ' -f3)
pID=$(lsusb | grep $trigger | cut -d ':' -f3 | cut -d ' ' -f1)
echo "vID=$vID"
echo "pID=$pID"
myfunc ($vID $pID);

向我发送错误:

./script3.bash: line 3: syntax error near unexpected token `cat'
./script3.bash: line 3: `cat > file.xml << EOFcat'

如果我没记错的话,那意味着我不能在函数内部使用'cat'。

因此,问题来了:是否有可能编写一个函数来允许您在内部传递参数的情况下创建XML文件?

1 个答案:

答案 0 :(得分:0)

即使以bash形式提供,function也不是必需的,而且BTW不是标准的

声明可能应该是

myfunc () {

并且通话不需要它们:

myfunc "$vID" "$pID"