Попробуйте просто:
#!/bin/bash
query1='select * from mysql.user limit 2;'
query2="select * from mysql.user limit 2;"
echo "${!1}"
#mysql -uuser-p -e "${!1}"
Но вы могли бы:
#!/bin/bash
queries=('select * from mysql.user limit 2;'
"select * from mysql.user limit 2;")
echo "${queries[$1]}"
#mysql -uuser-p -e "${queries[$1]}"
Затем запустить ./test 0
или ./test 1
.
Или даже
#!/bin/bash
declare -A queries=$'(
[query1]=\047select * from mysql.user limit 2;\047
[query2]="select * from mysql.user limit 2;")'
echo "${queries[$1]}"
#mysql -uuser-p -e "${queries[$1]}"
Примечание. Синтаксис $'....\047...\047...'
- это хитрость для использования простых кавычек в строке в кавычках.
Затем запустите ./test3 query1
.