gpt4 book ai didi

bash - 如何在单独的行上打印从 shell 扩展返回的每个单词?

转载 作者:行者123 更新时间:2023-11-29 09:16:23 25 4
gpt4 key购买 nike

当我们使用 shell 扩展时,它会在一行中给出所有扩展的单词。例如:

#!/bin/bash 
data="Hello\ {World,Rafi}"
eval echo $data

这会产生以下输出:

Hello World Hello Rafi

是否可以像这样将每一行输出到单独的一行?

Hello World 
Hello Rafi

最佳答案

如果我没理解错的话,您想使用大括号扩展 ( {...} ) 生成多个单词,然后在单独的行上打印每个单词。

如果你不是绝对必须存储"Hello\ {World,Rafi}"在一个变量中,你可以使用 printf 来做到这一点 shell 内置

printf "%s\n" "Hello "{Rafi,World}

一些解释:

格式字符串(此处:%s\n)被重复使用,直到所有参数都传递给printf。用完了 ( Reference )。

  1. %s\n消耗 1 个参数

  2. "Hello "{Rafi,World}返回 2 个单词/参数,即 "Hello Rafi""Hello World"

  3. 所以,这个 printf命令等同于

     printf "%s\n%s\n" "Hello Rafi" "Hello World"

    除非您不必输入全部

关于bash - 如何在单独的行上打印从 shell 扩展返回的每个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17338556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com