如何在 Bash 场景中使用 cat 通过函数创建文件
How create file via function using cat in Bash scenario
我正在尝试创建一个允许我向其发送两个变量的函数。
我的代码:
#!/bin/bash
function myfunc{
cat > file.xml << EOFcat
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x'/>
<product id='0x'/>
</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 文件,其中包含传递的参数?
即使在 bash 中可用,function
也不是必需的,顺便说一句也不是标准的
声明大概应该是
myfunc () {
调用不需要它们:
myfunc "$vID" "$pID"
我正在尝试创建一个允许我向其发送两个变量的函数。 我的代码:
#!/bin/bash
function myfunc{
cat > file.xml << EOFcat
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x'/>
<product id='0x'/>
</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 文件,其中包含传递的参数?
即使在 bash 中可用,function
也不是必需的,顺便说一句也不是标准的
声明大概应该是
myfunc () {
调用不需要它们:
myfunc "$vID" "$pID"