加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何将多行变量作为参数传递给函数

发布时间:2020-12-14 02:37:59 所属栏目:Linux 来源:网络整理
导读:试图捕捉和显示卷曲的输出让我疯了.我终于找到了解决方法,但我不明白为什么需要它. 这是一个失败的脚本: #!/bin/bashfunction echo_output() { echo $@}CURL_OUTPUT=$(curl -sL --head www.google.com/foobar)echo_output "$CURL_OUTPUT" 这是一个有效的脚
试图捕捉和显示卷曲的输出让我疯了.我终于找到了解决方法,但我不明白为什么需要它.

这是一个失败的脚本:

#!/bin/bash
function echo_output() {
    echo $@
}

CURL_OUTPUT=$(curl -sL --head www.google.com/foobar)
echo_output "$CURL_OUTPUT"

这是一个有效的脚本:(转义回车)

#!/bin/bash
function echo_output() {
    OUT="${@//[$'r']/r}"
    echo $OUT
}

CURL_OUTPUT=$(curl -sL --head www.google.com/foobar)
echo_output "$CURL_OUTPUT"

是什么赋予了?换行和“$@”有什么特别之处?谢谢您的帮助.

解决方法

我认为$@没有任何问题.

但是在第一种情况下,为了干净地输出变量作为你赋予卷曲的参数,输出有换行符,在你的函数echo_output()中你需要引用“$@”,在这种情况下是“echo”(这反过来又是只将其位置参数打印到标准输出中,仅此而已将分割单词 – >参数(参数)正确.正如Dawud所说,在这种情况下使用printf会更好.

再次在你的情况下:

function echo_output() {
echo "$@"
}

会做的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读