【发布时间】:2013-06-22 14:12:26
【问题描述】:
我有一个类似的 bash 脚本
./script -a filename
我在变量 $CONTENT 中有一个文件的内容
如何将变量传递给命令。我的意思是我可以先将变量的内容写入磁盘,但这似乎开销太大。
有没有更好的解决方案?
类似
./scrip -a << $CONTENT
【问题讨论】:
标签: linux bash shell unix command-line
我有一个类似的 bash 脚本
./script -a filename
我在变量 $CONTENT 中有一个文件的内容
如何将变量传递给命令。我的意思是我可以先将变量的内容写入磁盘,但这似乎开销太大。
有没有更好的解决方案?
类似
./scrip -a << $CONTENT
【问题讨论】:
标签: linux bash shell unix command-line
你还需要一个<:
./script -a <<<"$CONTENT"
<<<被称为herestring,它接受下面的字符串并将其作为标准输入传递。
【讨论】:
./script -a <<< "$CONTENT"
s="a b"(比如说,a 和 b 之间有三个空格,这里显示不正确),然后比较 cat <<< $s 和 cat <<< "$s"。另外,请参阅手册的Here String 部分。您将阅读:单词被扩展并提供给标准输入上的命令。是的,已扩展。作为一般规则:使用更多引用!
IFS 等,那么最好总是引用!
xsltproc <<< "$xslt_content" "$xml_path" 和file <<< "$content" 一起使用。这些都没有奏效。它必须是最后一个参数吗? file 调用有什么问题?
只要您按照 cmets 中的建议将该变量引用到该答案,Kevin 建议使用 here 字符串即可。更便携的解决方案是使用此处的文档:
./script -a << EOF
$CONTENT
EOF
在这种情况下,引号是不必要的,实际上是不可取的。
【讨论】: