[英]Pass value of the variable to a command in bash script
如何在bash腳本中將變量的值傳遞給命令?
具體來說,我想使用(部分)隨機名稱創建一個AWS S3存儲桶。 這是我到目前為止所得到的:
#!/bin/bash
random_id=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
bucket_name=s3://mybucket-$random_id
echo Bucket name: ${bucket_name}
aws s3 mb ${bucket_name}
我得到的輸出:
Bucket name: s3://mybucket-z4nnli2k
Parameter validation failed:cket-z4nnli2k
": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
存儲桶名稱正確生成,但是aws s3 mb ${bucket_name}
失敗。 如果我只運行aws s3 mb s3://mybucket-z4nnli2k
那么將創建存儲桶,因此我認為aws s3 mb ${bucket_name}
不是將bucket_name
的值bucket_name
給aws s3 mb
命令的正確方法。
這一定是顯而易見的,但是我對shell腳本的經驗幾乎為零,無法弄清楚。
如何將bucket_name
的值bucket_name
給aws s3 mb
命令?
感謝上面的評論,這就是我的工作:
#!/bin/bash
random_id=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
bucket_name=s3://mybucket-$random_id
echo Bucket name: ${bucket_name}
aws s3 mb "${bucket_name}"
我還必須在腳本上運行dos2unix
,顯然有不好的換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.