我正在尝试编写两个将使功能在一起的循环,因为我需要在一个部署中同时使用两个变量来获得天蓝色,例如存储帐户名称和容器名称来包含它们的密钥并进行存储,但是我得到了重复的结果。
for storage in $(cat $TMP_FILE_STORAGE | sed 's/^[^"]*"\([^"]*\)".*/\1/' )
do
echo $storage
for container in $(cat $TMP_FILE_CONTAINER| sed 's/^[^"]*"\([^"]*\)".*/\1/' )
do
echo $container
continue
done
done
这是容器json的文件: 喇嘛巴巴
这是用于存储json的文件: abdelvt33cpgsa abdelvt44cpgsa
这是我得到的输出 abdelvt33cpgsa 喇嘛 爸爸 abdelvt44cpgsa 喇嘛 爸爸
,预期结果应该是 abdelvt33cpgsa 喇嘛 abdelvt44cpgsa 爸爸
答案 0 :(得分:0)
假设
一种快速的方法是粘贴两个文件,然后将分隔符(默认情况下为制表符)转换为换行符:
react-native-cli
看看Stackoverflow语法的着色如何使这个示例看起来很酷!
答案 1 :(得分:0)
请参见Bash FAQ 001;您不应该一开始就使用for
循环。
相反,请使用带有两个单独文件描述符的while
循环。
while IFS= read -r storage <&3 && IFS= read -r container <&4 ; do
echo "$storage"
echo "$container"
done 3< <(sed 's/^[^"]*"\([^"]*\)".*/\1/' < "$TMP_FILE_STORAGE" ) 4< <(sed 's/^[^"]*"\([^"]*\)".*/\1/' < "$TMP_FILE_CONTAINER")
通过在sed
上拆分每条输入行,您似乎也可以摆脱"
:
while IFS=\" read -r _ storage _ <&3 &&
IFS=\" read -r _ container _ <&4; do
echo "$storage"
echo "$container"
done 3< "$TMP_FILE_STORAGE" 4< "$TMP_FILE_CONTAINER"
答案 2 :(得分:0)
对此的正确解决方案是在aray循环上运行它。
Potato=$(cat $TMP_FILE_STORAGE)
Potato1=$(cat $TMP_FILE_CONTAINER)
eval "array=($Potato)"
eval "array2=($Potato1)"
for ((i=0; i<${#array[@]}; i++)); do
end=`date -d "15 minutes" '+%Y-%m-%dT%H:%MZ'`
az storage container generate-sas -n ${array2[$i]} --account-name ${array[$i]} --https-only --permissions dlrw --expiry $end -otsv`
echo "First parameter : ${array[$i]} -- second parameter : ${array2[$i]}"
done