我有一个安装jackett的函数,该函数包含写一个服务文件的heredoc。
问题是我需要缩进EOF但它不会工作,我尝试过多次代码和示例似乎没有用。
我已尝试过以下两种情况,包括和不使用“”,'', - 围绕EOF
cat <<-EOF > /etc/systemd/system/jackett.service
EOF
cat > /etc/systemd/system/jackett.service <<-EOF
EOF
cat <<-EOF
EOF > /etc/systemd/system/jackett.service
这是我写的实际代码。
sudo apt-get update -y
sudo apt-get install -y libcurl4-openssl-dev bzip2 mono-devel -y
cd /tmp
wget https://github.com/Jackett/Jackett/releases/download/v0.8.832/Jackett.Binaries.Mono.tar.gz
sudo tar -xvf Jackett*
sudo mv Jackett/* /opt/jackett
sudo chown -R plex-admin:plex-admin /opt/jackett
cat <<-EOF > /etc/systemd/system/jackett.service
[Unit]
Description=Jackett Daemon
After=network.target
[Service]
User=$Admin
Restart=always
RestartSec=5
Type=simple
ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe --NoRestart
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable jackett
sudo service jackett start
请帮忙。
修改1
根据Charles Duffy的评论
我的测试文件是
#!/bin/bash
cat -A <<-EOF
[Unit]
Description=Jackett Daemon
After=network.target
[Service]
User=$Admin
Restart=always
RestartSec=5
Type=simple
ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe --NoRestart
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target
EOF
运行bash脚本时的输出是
[Unit]$
Description=Jackett Daemon$
After=network.target$
$
[Service]$
User=$
Restart=always$
RestartSec=5$
Type=simple$
ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe --NoRestart$
TimeoutStopSec=20$
$
[Install]$
WantedBy=multi-user.target$
修改2
所以原子有一个很酷的功能,叫做'将所有空间转换成标签'我选择了我的猫功能,现在输出-A在下面。
[Unit]$
Description=Jackett Daemon$
After=network.target$
$
[Service]$
User=$
Restart=always$
RestartSec=5$
Type=simple$
ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe --NoRestart$
TimeoutStopSec=20$
$
[Install]$
WantedBy=multi-user.target$
它有效!
答案 0 :(得分:0)
我在原子中选择了我的猫声明然后去了;套餐&gt;空白&gt;将空格转换为制表符。
带-A的cat函数输出低于。
[Unit]$
Description=Jackett Daemon$
After=network.target$
$
[Service]$
User=$
Restart=always$
RestartSec=5$
Type=simple$
ExecStart=/usr/bin/mono --debug /opt/jackett/JackettConsole.exe --NoRestart$
TimeoutStopSec=20$
$
[Install]$
WantedBy=multi-user.target$
它有效!