簡體   English   中英

將變量的值傳遞給bash腳本中的命令

[英]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_nameaws s3 mb命令的正確方法。

這一定是顯而易見的,但是我對shell腳本的經驗幾乎為零,無法弄清楚。

如何將bucket_name的值bucket_nameaws 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM