【问题标题】:Is there an equivalent to <(process list) for variables?变量是否有等效于 <(process list) 的变量?
【发布时间】:2016-07-01 14:55:46
【问题描述】:

我可以使用&lt;(some command) 代替文件,但是如何使用变量实现等效?我正在使用paste 命令,该命令需要文件作为参数,并希望使用SOMEVAR 的内容,就好像它是一个文件一样。

paste <($SOMEVAR)

更新0

我希望像&lt;&lt;&lt;(SOMEVAR) 这样的东西存在。 &lt;(echo $SOMEVAR) 不起作用,因为 echo 在参数之间插入空格,所以换行符丢失。

【问题讨论】:

    标签: bash paste variable-substitution


    【解决方案1】:

    为此使用here string。像这样:

    cmd <<< "$variable"
    

    例子:

    文件1:

    Linux
    Unix
    Solaris
    HPUX
    AIX
    

    重击:

    a=$(<file1)
    paste <<< "$a" # Will output the contents of file1
    

    【讨论】:

    • 我担心的是它会限制标准输入的使用。我想将变量作为文件参数之一传递。
    • @MattJoiner 好的,我错过了这个要求。那就去索伦的回答吧!那就是你想要的。进程替换将通过 bash 扩展为像 /dev/fd/XY 这样的文件名。因此,您甚至可以在命令行中传递多个它们,它不会使用标准输入。
    【解决方案2】:

    您可以尝试使用 echo 在 $var 周围加上引号,因为这样可以保留换行符,就像这样

    paste <(echo "$SOMEVAR")
    

    【讨论】:

    • 啊,我没想到这个!
    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2017-09-30
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多