你知道为什么下面的 shell 脚本只生成名为“Loading_EMP.sql”而不是“Loading_1_EMP.sql”的输出文件吗?
#!/bin/bash
JOBID="1"
TABLE="EMP"
echo 'test' > Loading_$JOBID_$TABLE.sql;
# Output
Loading_EMP.sql
# Expected Output
Loading_1_EMP.sql
最佳答案
echo 'test' > Loading_${JOBID}_${TABLE}.sql;
应该做,或者更好
echo 'test' > "Loading_${JOBID}_${TABLE}.sql" # to avoid word splitting
在 Loading_$JOBID_$TABLE
中,shell 将 $JOBID_
视为单个变量,因为它未设置,所以它替换 $JOBID_
没有任何结果 Loading_EMP.sql
这[ answer ]必须为您阅读。
关于linux - shell 输出文件的奇怪行为 ( Linux ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38671740/