将要转储的表作为 bash 脚本中的选项转储 postgresql 数据库
taking tables to be dumped as options in bash script to take dump of postgresql database
我想转储 postgresql
数据库的特定 table。转储特定 tables 的命令是
pg_dump -h host -U username db_name -t table1 - t table2 -t table3 ... > /tmp/mydb.sql
但我试图将 tables 作为 option argument
而 运行 bash 脚本。要转储的数量 table 不固定。我采用如下选项参数
#!/bin/bash
# Argument = -t test -r server -p password -v
usage()
{
cat << EOF
usage: [=12=] options
This script run the test1 or test2 over a machine.
OPTIONS:
-h Show this message
-t Table name
-v Verbose
EOF
}
TABLE=
VERBOSE=
while getopts “ht:v” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
t)
TABLE=$OPTARG
;;
v)
VERBOSE=1
;;
?)
usage
exit
;;
esac
done
if [[ -z $TABLE ]]
then
usage
exit 1
fi
如何将多个 table 名称作为 bash 脚本中的参数来获取那些 table 的转储并嵌入到 pg_dump
命令中?
因为您没有任何其他非可选参数,所以让这些成为表格。
tables=()
for table in "$@"; do
tables+=(-t "$table")
done
pg_dump "${tables[@]}"
我想转储 postgresql
数据库的特定 table。转储特定 tables 的命令是
pg_dump -h host -U username db_name -t table1 - t table2 -t table3 ... > /tmp/mydb.sql
但我试图将 tables 作为 option argument
而 运行 bash 脚本。要转储的数量 table 不固定。我采用如下选项参数
#!/bin/bash
# Argument = -t test -r server -p password -v
usage()
{
cat << EOF
usage: [=12=] options
This script run the test1 or test2 over a machine.
OPTIONS:
-h Show this message
-t Table name
-v Verbose
EOF
}
TABLE=
VERBOSE=
while getopts “ht:v” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
t)
TABLE=$OPTARG
;;
v)
VERBOSE=1
;;
?)
usage
exit
;;
esac
done
if [[ -z $TABLE ]]
then
usage
exit 1
fi
如何将多个 table 名称作为 bash 脚本中的参数来获取那些 table 的转储并嵌入到 pg_dump
命令中?
因为您没有任何其他非可选参数,所以让这些成为表格。
tables=()
for table in "$@"; do
tables+=(-t "$table")
done
pg_dump "${tables[@]}"