![Bash 라인 스크립트에 텍스트 추가 [닫기]](https://linux55.com/image/87895/Bash%20%EB%9D%BC%EC%9D%B8%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%B6%94%EA%B0%80%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
내 스크립트를 작동시키려고 노력했지만 작동하지 않습니다. 이건 내 스크립트야
#!/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
이렇게 하면 두 가지 문제가 모두 해결됩니다.