dre*_*mac 2 bash shell expansion subshell
问题:
以下shell脚本代码不会产生预期的结果:
# MYSQL, MyUSER MyHost etc ... all defined above as normal
TARG_DB="zztest";
DB_CREATE="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'create database $TARG_DB')";
Run Code Online (Sandbox Code Playgroud)
预期结果:
使用名称创建的新数据库 zztest
实际结果:
使用名称创建的新数据库 $TARG_DB
题:
如何更改此示例代码以进行$TARG_DB插值或扩展,从而产生预期结果?
因为$TARG_DB在子shell中的单引号内,所以它是字面上的.在那里使用双引号,它们不会弄乱子shell.例如
$ tmp="a b c"
$ echo $tmp
a b c
$ echo $(echo $tmp)
a b c
$ echo $(echo "$tmp")
a b c
$ echo $(echo '$tmp')
$tmp
$ echo "$(echo '$tmp')"
$tmp
$ echo "$(echo "$tmp")"
a b c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4882 次 |
| 最近记录: |