Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将变量中的文件内容传递到bash脚本中,而不写下文件_Linux_Bash_Shell_Unix_Command Line - Fatal编程技术网

Linux 将变量中的文件内容传递到bash脚本中,而不写下文件

Linux 将变量中的文件内容传递到bash脚本中,而不写下文件,linux,bash,shell,unix,command-line,Linux,Bash,Shell,Unix,Command Line,我有一个bash脚本,比如 ./script -a filename 我有一个变量$content中的文件内容 如何将变量传递到命令中。我的意思是我可以先把变量的内容写到磁盘上,但这似乎开销太大了 有更好的解决办法吗 差不多 ./scrip -a << $CONTENT /scrip-a您还需要一个Kevin建议使用here字符串,只要您引用该答案注释中建议的变量就行了。更方便的解决方案是使用here doc: ./script -a << EOF $CONTENT

我有一个bash脚本,比如

./script -a filename
我有一个变量$content中的文件内容

如何将变量传递到命令中。我的意思是我可以先把变量的内容写到磁盘上,但这似乎开销太大了

有更好的解决办法吗

差不多

./scrip -a << $CONTENT

/scrip-a您还需要一个
Kevin建议使用here字符串,只要您引用该答案注释中建议的变量就行了。更方便的解决方案是使用here doc:

./script -a << EOF
$CONTENT
EOF

/script-a你应该使用引号:
/script-a你一定是在开玩笑,一点也不好笑!试试看:
s=“a b”
(比如说,a和b之间有三个空格,在这里不能正确显示),然后比较
cat我看到了,空格被折叠了。但它并没有扩展到其他参数中,这是我测试过的。未加引号的变量的扩展可能会有副作用,例如,如果你设置了有趣的
IFS
,等等。所以最好总是加引号!我试图将其与
xsltproc一起使用
./script -a << EOF
$CONTENT
EOF