bash函数的单引号参数

bash函数的单引号参数,bash,Bash,我试图将两个参数传递给下面的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&passwo

我试图将两个参数传递给下面的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'
}

似乎需要将参数括在单引号中。为此,请用双引号将所有内容括起来:

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'"
}

这不会阻止变量扩展,还会导致参数被括在单引号中。

变量扩展不会发生在单引号中。