MAC OS X Terminal force print f 忽略一些变量

MAC OS X Terminal force print f to ignore some variables

我在 MAC OS X 终端上遇到 printf 函数的问题。 我已经声明了一个变量,当我调用它时,它起作用了。问题如下:

在文本中我有一些以“$”开头但属于另一个系统的变量。我只想将它们打印在我以这种方式创建的文件上($foo),而无需 bash 尝试将它们作为自己的变量读取。我得到的结果是一个空字符串。

我有以下代码(伪代码):

echo "Type the wished folder name followed by [ENTER]:"

read baseName

echo '' > ext_emconf.php

printf " $VARIABLE[$ANOTHERVARIABLE] = [
'title' => '%s - Templates'
]; 
" $basename> ext_emconf.php 

我得到的结果是用户给出的例子 "Amazon":

[] = [
    'title' => 'Amazon - Templates'
];

虽然我很期待:

$VARIABLE[$ANOTHERVARIABLE] = [
    'title' => 'Amazon - Templates'
]; 

提前致谢

它在bash中是双引号试图将它们扩展为变量,但它没有定义。使用单引号或更好地使用此处字符串来打印漂亮的多行格式化字符串。这是处理一些变量的示例方法。

foo=bar
bar=foo
basename=foobar

tee ext_emconf.php <<EOF
$foo[$bar] = [
'title' => '$basename- Templates'
];
EOF

以上示例使用 tee 写入标准输出和提到的文件。如果您不想在控制台中看到它,您也可以将 stdout 重定向到 /dev/null

tee ext_emconf.php <<EOF > /dev/null
$foo[$bar] = [
'title' => '$basename- Templates'
];
EOF