0
"sed"コマンドを使ってファイル内の行を置き換えている。置換行が直接テキストである場合はうまく動作しますが、置換すると$ variableの余分なタブが追加されます。bash:変数を使うときにsedを追加する。
# Find Resource ID
FIND_ID=$(
aws iam get-account-authorization-details | grep -m1 saml-provider
)
echo ${FIND_ID}
sleep 3
# Update file with the new resource ID
# Use | instead of/or : since the ID contains both symbols
sed -i '.bak' "7s|.*|$FIND_ID|" test-policy.json
テストpolicy.json:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::xxxxxxxx:saml-provider/????" }, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "SAML:aud": "signin.aws.amazon.com/saml"; } } } ] }
任意の考え?
ありがとうございます。
私は 'echo" $ {FIND_ID} "を引用することをお勧めします。したがって、あなたはexacltly $ FIND_IDが何であるかを見るでしょう。 – user3159253
変数の内容をさらに明確に表示するには、 'echo" $ FIND_ID "| 'cat -vet'は、空白で邪魔しないようにする(例えば、タブを空白に変えるなど)、' cat -vet'は印字されない文字(タブなど)を明示的な制御文字列に変換します(タブは '^ I ')。 –