我正在尝试在bash heredoc中插入变量:
var=$1
sudo tee "/path/to/outfile" > /dev/null << "EOF"
Some text that contains my $var
EOF
Run Code Online (Sandbox Code Playgroud)
这不符合我的预期(按$var字面意思处理,不进行扩展).
我需要使用,sudo tee因为创建文件需要sudo.做类似的事情:
sudo cat > /path/to/outfile <<EOT
my text...
EOT
Run Code Online (Sandbox Code Playgroud)
不起作用,因为>outfile在当前shell中打开文件,而不使用sudo.
你如何使用bash延续线?
我意识到你可以这样做:
echo "continuation \
lines"
>continuation lines
Run Code Online (Sandbox Code Playgroud)
但是,如果你有缩进代码,它不能很好地工作:
echo "continuation \
lines"
>continuation lines
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个批处理文件,它将在特定文件夹中创建一个文本文件.我能够在桌面上创建一个文本文件,但我需要在特定的文件路径中创建一个文件.
例如,在D:/Testing 文件夹中,我想创建一个用户定义的文本文件.
@echo off
echo .>> dblank.txt
Run Code Online (Sandbox Code Playgroud)
我正在使用上面的代码.txt在我的桌面上创建一个文件.
我知道这是一个愚蠢的问题,但我搜索谷歌,并没有找到任何可以帮助我的好解决方案.
这可能是一个非常愚蠢的问题,但我目前有一个包含一些 HTML 内容的脚本。运行脚本后,我可以轻松创建 HTML 页面:
./scriptName.sh > test.html
Run Code Online (Sandbox Code Playgroud)
然而,我想要实现的是在脚本中创建 HTML 页面,并且在执行时不将其作为参数传递,也不由用户以任何方式指定。
换句话说,我希望脚本的运行方式如下:
./scriptName.sh
Run Code Online (Sandbox Code Playgroud)
在该脚本中,创建的 HTML 与执行时传递的 HTML 类似。
这可能吗?如果是这样,我将如何实现这一目标?
就其价值而言,我的脚本非常简单,如下所示:
#!/bin/bash
cat << _EOF_
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
_EOF_
Run Code Online (Sandbox Code Playgroud)