我试图将2个参数传递给以下bash函数$ 1和$ 2。如果我只是回应下面的陈述,它似乎只输出1美元和2美元。我需要在单引号中使用参数才能使函数正常工作。我做错了什么?
function mysql_diff()
{
java -jar mysql-diff.jar 'jdbc:mysql://localhost:3306/$1?user=root&password=PASSWORD' 'jdbc:mysql://localhost:3306/$2?user=root&password=PASSWORD'
}
答案 0 :(得分:2)
您似乎需要将参数括在单引号中。要实现这一点,请用双引号括起所有内容:
function mysql_diff()
{
java -jar mysql-diff.jar "'jdbc:mysql://localhost:3306/$1?user=root&password=PASSWORD'" "'jdbc:mysql://localhost:3306/$2?user=root&password=PASSWORD'"
}
这不会阻止变量扩展,也会导致参数用单引号括起来。