gpt4 book ai didi

bash - 在 $variable 后面添加一个逗号

转载 作者:行者123 更新时间:2023-12-02 20:38:44 26 4
gpt4 key购买 nike

我正在 bash 中编写一个 for 循环来运行命令,并且我需要在我的变量之一后面添加一个逗号。如果不添加额外的空间,我似乎无法做到这一点。当我将“,”移到 $bams 旁边时,它会输出 *.sorted,

#!/bin/bash

bams=*.sorted

for i in $bams
do echo $bams ","
done;

输出应该是这样的:

'file1.sorted','file2.sorted','file3.sorted'

最终的目标是能够将文件列表插入到上述格式的 --flag 中。也不知道该怎么做。

最佳答案

首先,一个字面答案(如果您的目标是生成 'foo','bar','baz' 形式的字符串,而不是使用等效的命令行运行程序到 somecommand --flag='foo','bar','baz',这是完全不同的):

shopt -s nullglob               # generate a null result if no matches exist
printf -v var "'%s'," *.sorted # put list of files, each w/ a comma, in var
echo "${var%,}" # echo contents of var, with last comma removed

或者,如果您不需要文字单引号(并且如果您在命令行上将结果传递给另一个程序,并且单引号是语法而不是文字,那么您绝对不想要它们):

files=( *.sorted )               # put *.sorted in an array
IFS=, # set the comma character as the field separator
somecommand --flag "${files[*]}" # run your program with the comma-separated list

关于bash - 在 $variable 后面添加一个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456356/

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