bash - Shell 变量串联

标签 bash shell mysql

嗨,我正在尝试编写一个脚本,但我收到了与预期不同的输出;

VAR_1=username
VAR_2=password
VAR_3=fancypasWoRD@$!%(115.#
VAR_4=database

mysqldump -u $VAR_1 --password=$VAR_3 $VAR_4

当我使用bash -x script.sh运行它时,它显示为

VAR_1=username
VAR_2=password
VAR_3='fancypasWoRD@$!%(115.#'
VAR_4=database
mysqldump -u username '--password=fancypasWoRD@$!%(115.#' database

为什么VAR_3初始化中、--password之前以及实际密码末尾有单引号?

最佳答案

shell 只是让您知道,这是作为参数传递的文字字符串,并且没有进一步的替换:

$ echo \*
+ echo '*'

$ echo *
+ echo list_of_files in_my_directory

注意:您是否更换了示例中的密码?因为这个有语法错误...

关于bash - Shell 变量串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22486664/

相关文章:

没有选项的 Bash 测试似乎有效,但为什么呢?

bash - 在 bash shell 中添加文件大小

linux - 管道重定向到 shell 文件的限制?

ruby - Linux 上 ruby​​ 脚本中的环境变量

mysql - SQL 多重左连接

php - 自动生成复合主键的一个字段的 Doctrine

bash - 将 C 头文件中的#defines 转换为 bash 变量

Bash 命令中的变量扩展

python - 为什么使用 sudo 运行脚本或使用 crontab 计划会导致错误?

php - 多查询 PHP 问题