指令行如下
awk '{ print "mysqldump phpbb2 -u phpbbuser --opt " $1 " > " \
$1".sql" }' tables_list | /bin/sh
而 tables_list 內容像
phpbb_auth_access
phpbb_banlist
phpbb_categories
phpbb_config
phpbb_disallow
phpbb_forum_prune
phpbb_forums
phpbb_groups
phpbb_posts
phpbb_posts_text
phpbb_privmsgs
phpbb_privmsgs_text
現在上面那個指令行寫在一個script內,
phpbb2是指一個db name,
phpbbuser 是一個 db username,
假如像上面寫死在一行內,run都沒問題,
但若是在script開頭先宣告,
那要如何帶入awk內?
下面這樣跑是套"$db_name"和"$db_user",
而不是我要的"phpbb2"和"phpbbuser"...
#!/bin/sh
db_name="phpbb2"
db_user="phpbbuser"
awk '{ print "mysqldump $db_name -u $db_user --opt " $1 " > " \
$1".sql" }' tables_list | /bin/sh
我希望的結果是
mysqldump phpbb2 -u phpbbuser --opt phpbb_vote_voters > phpbb_vote_voters.sql
mysqldump phpbb2 -u phpbbuser --opt phpbb_words > phpbb_words.sql
而不是
mysqldump $db_name -u $db_user --opt phpbb_vote_voters > phpbb_vote_voters.sql
mysqldump $db_name -u $db_user --opt phpbb_words > phpbb_words.sql