Como passar argumento para subshell

0

É possível passar o argumento DBNAME para subshell sem escrevê-lo manualmente?

mysqldump -u USERNAME -p DBNAME > "$(date +"%Y-%m-%d_%H-%M-%S")_DBNAME.sql"
    
por J. Doe 10.04.2018 / 17:15

1 resposta

1

Não há sub-shell aqui, mas uma substituição de comando (o $(...) ). Se DBNAME é uma variável, você pode usar

DBNAME=mydatabase
mysqldump -u USERNAME -p "$DBNAME" > "$(date +"%F_%H-%M-%S")_$DBNAME.sql"

ou até mesmo

DBNAME=mydatabase
mysqldump -u USERNAME -p "$DBNAME" >"$(date +"%F_%H-%M-%S_$DBNAME.sql")"

ou

DBNAME=mydatabase
outfilename=$(date +"%F_%H-%M-%S_$DBNAME.sql")
mysqldump -u USERNAME -p "$DBNAME" >"$outfilename"

ou suas variações.

    
por 10.04.2018 / 17:19