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
我在 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