내 스크립트를 작동시키려고 노력했지만 작동하지 않습니다. 이건 내 스크립트야
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i '28s/^/'$b'\n/' /var/spool/cron/crontabs/root
sudo sed -i '28s/^/'$a'\n/' /var/spool/cron/crontabs/root
exit
변수를 어떻게 추가할 수 있나요? 방금 받았어요 sed -e incomplete 's' command
.
답변1
이 명령에는 두 가지 문제가 있습니다 sed
.
- 변수
$a
는$b
인용되지 않으므로 쉘이 변수를 전달하게 됩니다.부분sed
여러 매개변수 로 "/"
대체된 구분 기호는 및 값에서도 찾을 수 있습니다 .$a
$b
sed
쉼표 및 백분율과 같은 다른 구분 기호를 허용합니다. 쉼표를 사용했지만 백분율은 사용하지 않았습니다. 스크립트를 다음과 같이 수정하면
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i '28s%^%'"$b"'\n%' /var/spool/cron/crontabs/root
sudo sed -i '28s%^%'"$a"'\n%' /var/spool/cron/crontabs/root
exit
심지어
#!/bin/bash
a="* * * * * /home/server/scripts/check.sh"
b="0 06,18 * * * /home/server/scripts/checks2.sh"
sudo sed -i "28s%^%$b\n%" /var/spool/cron/crontabs/root
sudo sed -i "28s%^%$a\n%" /var/spool/cron/crontabs/root
exit
이렇게 하면 두 가지 문제가 모두 해결됩니다.