We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
看到手册中有处: varname=value command # 定义子进程变量并执行子进程 我就试了下几个例子:
MYSQL_PWD=Root123@ mysql -u root 这个命令可以正常执行 MYSQL_PWD=Root123@; mysql -u root 这样就不行了, 会报错 Access denied for user
那么 var1="abc" echo "$var1" 为啥不会输出 "abc" var1="abc"; echo "$var1" 这个命令却可以输出"abc". 这里需要加分号才可以, 上面那个例子不加分号才行, 不懂是为啥
The text was updated successfully, but these errors were encountered:
因为 mysql 是外部命令 echo 是内部命令,
var1="abc"; echo 修改的是本 shell 进程内部变量,然后再用内部命令,可以生效; 而光修改内部变量,没有透传或者 export 那么 mysql 这样的外部命令就无法感知 ;
var1=“abc” mysql 不会修改本 shell 内部变量,只是作一个跨进程透传,因此 mysql 有效,echo 无效。
Sorry, something went wrong.
因为 mysql 是外部命令 echo 是内部命令, var1="abc"; echo 修改的是本 shell 进程内部变量,然后再用内部命令,可以生效; 而光修改内部变量,没有透传或者 export 那么 mysql 这样的外部命令就无法感知 ; var1=“abc” mysql 不会修改本 shell 内部变量,只是作一个跨进程透传,因此 mysql 有效,echo 无效。
懂了, 感谢大佬!
No branches or pull requests
看到手册中有处:
varname=value command # 定义子进程变量并执行子进程
我就试了下几个例子:
MYSQL_PWD=Root123@ mysql -u root
这个命令可以正常执行
MYSQL_PWD=Root123@; mysql -u root
这样就不行了, 会报错 Access denied for user
那么
var1="abc" echo "$var1"
为啥不会输出 "abc"
var1="abc"; echo "$var1"
这个命令却可以输出"abc". 这里需要加分号才可以, 上面那个例子不加分号才行, 不懂是为啥
The text was updated successfully, but these errors were encountered: