我正試圖找到一種方法,以便在用於AWS CLI命令的bash陣列的元素之間沒有空格。該命令的過濾器表示過濾器的格式必須是'--filters name = string1,values = string1,string2'。刪除bash數組元素之間的空格
,我目前有至今代碼:這給我的
foo-bar, herp-derp, bash-array,
輸出
tag_filter=($(aws ec2 describe-tags --filter "name=value,values=${tags[@]}" | jq '[.Tags[] | {ResourceId}]'))
regex=[[:alpha:]][-][[:xdigit:]]
for x in ${tag_filter[@]}
do
if [[ $x =~ $regex ]]
then
#parameter expansion to remove " from elements
resource_id+=("${x//\"},")
#$resource_id== "${resource_id_array[@]// /,}"
else
throw error message
fi
done
echo "${resource_id[@]}"
,但它需要
foo-bar,herp-derp,bash-array,
下一個濾鏡命令上班。我所搜索的所有內容都是刪除字符串中的空格,將字符串轉換爲數組,或者是一般數組上的文檔,而且我在任何地方都沒有看到類似的問題。
編輯:
我添加anubhava的print語句到我的代碼,這樣
then
#parameter expansion to remove " from elements
resource_id_array+=("${x//\"},")
resource_id= $(printf "%s" "${resource_id_array[@]}")
resource_id= ${resource_id:1}
#${resource_id[@]}== "${resource_id[@]// /,}"
else
現在給我我需要的,但給我的輸出中「:找不到命令錯誤」時我回顯「$ resource_id」後運行腳本
,用來獲取工作數組的輸出,但我需要數組本身的格式。 – user2642953
數組只有單個元素。你是否注意到單個元素中的尾部空格?嘗試打印它:'echo「@ $ {resource_id [0]} @」'來驗證。 – anubhava