标签: heredoc

如何从Ruby HEREDOC中删除前导空格字符?

我正在尝试制作一个Ruby heredoc的问题.它正在返回每行的前导空格,即使我包含 - 运算符,它应该抑制所有前导空白字符.我的方法看起来像这样:

    def distinct_count
    <<-EOF
        \tSELECT
        \t CAST('#{name}' AS VARCHAR(30)) as COLUMN_NAME
        \t,COUNT(DISTINCT #{name}) AS DISTINCT_COUNT
        \tFROM #{table.call}
    EOF
end
Run Code Online (Sandbox Code Playgroud)

我的输出如下:

    => "            \tSELECT\n            \t CAST('SRC_ACCT_NUM' AS VARCHAR(30)) as
COLUMN_NAME\n            \t,COUNT(DISTINCT SRC_ACCT_NUM) AS DISTINCT_COUNT\n
        \tFROM UD461.MGMT_REPORT_HNB\n"
Run Code Online (Sandbox Code Playgroud)

当然,这在这个特定的例子中是正确的,除了第一个"和\ t之间的所有空格.有没有人知道我在这里做错了什么?

ruby whitespace heredoc

83
推荐指数
6
解决办法
3万
查看次数

如何cat << EOF >>包含代码的文件?

我想使用cat <<EOF >>以下代码将代码打印到文件中:

cat <<EOF >> brightup.sh
!/bin/bash
curr=`cat /sys/class/backlight/intel_backlight/actual_brightness`
if [ $curr -lt 4477 ]; then
   curr=$((curr+406));
   echo $curr  > /sys/class/backlight/intel_backlight/brightness;
fi
EOF
Run Code Online (Sandbox Code Playgroud)

但是当我检查文件输出时,我得到了这个:

!/bin/bash
curr=1634
if [  -lt 4477 ]; then
   curr=406;
   echo   > /sys/class/backlight/intel_backlight/brightness;
fi
Run Code Online (Sandbox Code Playgroud)

我尝试使用单引号,但输出也带有单引号.我该如何避免这个问题?

unix linux heredoc sh

79
推荐指数
4
解决办法
15万
查看次数

here-document给出'意外的文件结束'错误

我需要我的脚本从终端发送电子邮件.基于我在这里看到的以及许多其他地方的在线,我将它格式化为:

/var/mail -s "$SUBJECT" "$EMAIL" << EOF
Here's a line of my message!
And here's another line!
Last line of the message here!
EOF
Run Code Online (Sandbox Code Playgroud)

但是,当我运行这个时,我得到这个警告:

myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF')

myfile.sh: line x+1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

...其中第x行是程序中最后写入的代码行,第y行是其中的行/var/mail.我试着更换EOF其他的事情(ENDOFMESSAGE,FINISH,等),但无济于事.我在网上找到的几乎所有内容都是这样做的,而且我真的很喜欢bash,所以我很难自己搞清楚.有人可以提供任何帮助吗?

email bash heredoc

64
推荐指数
3
解决办法
9万
查看次数

如何避免heredoc扩展变量?

我正在尝试使用来自ENV的替换字符串创建脚本文件,但也希望防止一些​​转义

export PLACEHOLDER1="myPlaceholder1Value"
export PLACEHOLDER2="myPlaceholder2Value"
sudo /bin/su -c "cat << EOF > /etc/init.d/my-script
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          my-script
# Required-Start:    \$remote_fs \$syslog
# Required-Stop:     \$remote_fs \$syslog
# Should-Start:      \$network \$time
# Should-Stop:       \$network \$time
# Default-Start:     2 3 4 5 
# Default-Stop:      0 1 6
# Short-Description: blabla
# Description:       bla bla desc
#
### END INIT INFO
#
myvariable_1=toto$PLACEHOLDER1
myvariable_2=titi$PLACEHOLDER2
myvariable_final=\"dynamicvar=\${myvariable_1},\${myvariable_2}\"
EOF
"
Run Code Online (Sandbox Code Playgroud)

由于myvariable_final没有被转义并被替换为init脚本依赖项中的一个($ remote_fs,$ syslog,$ network,$ time),因此结果不好.

#!/bin/bash
#
### BEGIN INIT …
Run Code Online (Sandbox Code Playgroud)

bash escaping heredoc substitution

60
推荐指数
2
解决办法
2万
查看次数

47
推荐指数
7
解决办法
4万
查看次数

这里的Python文档顶部和底部没有换行符

拥有此处文档的最佳方式是什么,顶部和底部没有换行符?例如:

print '''
dog
cat
'''
Run Code Online (Sandbox Code Playgroud)

将在顶部和底部有换行符,为了摆脱它们,我必须这样做:

print '''dog
cat'''
Run Code Online (Sandbox Code Playgroud)

我发现它的可读性要低得多.

python printing string heredoc

47
推荐指数
4
解决办法
4万
查看次数

C#中的Heredoc字符串

在C#中是否有字符串的heredoc表示法,最好是我不必转义任何内容(包括双引号,这是逐字字符串中的怪癖)?

c# string heredoc

44
推荐指数
4
解决办法
1万
查看次数

在php中heredoc vs nowdoc的优点/不便

作为一个新手,我被建议最好使用heredoc与太多嵌套代码相比(参见php代码中的意外T_ELSE).

但我无法理解heredoc和nowdoc之间是否存在显着差异.

与另一个对新手理解很重要的东西(即不是很小的优点但对我理解很重要)相比,heredoc和nowdoc有什么优势.

php heredoc nowdoc

41
推荐指数
1
解决办法
3万
查看次数

将常数(不可变)插入heredoc?

<?php
   define('my_const', 100);
   echo <<<MYECHO
      <p>The value of my_const is {my_const}.</p>
MYECHO;
?>
Run Code Online (Sandbox Code Playgroud)

如果我在括号内放一个变量就会打印出来.但不是常数.我该怎么做?谢谢!

php syntax constants heredoc

40
推荐指数
5
解决办法
2万
查看次数

Heredoc:常用的'EOT'究竟意味着什么?

PHP的Heredoc示例似乎总是使用EOT(有时候是EOD)作为单独的字符串,而实际上可以在这里使用任何字符串.这有效:

$mystring = <<<EOT
     Foo
     Bar
     Baz
EOT;
Run Code Online (Sandbox Code Playgroud)

虽然这也有效:

$mystring = <<<MONKIES
     Foo
     Bar
     Baz
MONKIES;
Run Code Online (Sandbox Code Playgroud)

EOT是否真的代表什么?如果是的话,那是什么?

php heredoc

34
推荐指数
4
解决办法
1万
查看次数

标签 统计

heredoc ×10

php ×4

string ×3

bash ×2

c# ×1

constants ×1

email ×1

escaping ×1

linux ×1

nowdoc ×1

operators ×1

printing ×1

python ×1

ruby ×1

sh ×1

substitution ×1

syntax ×1

unix ×1

whitespace ×1