Нужна помощь немного Я только что написал свой первый скрипт для изменения конфигурации сети. код

echo "changing IP to 172.17.51.71"
echo "changing Mask to 255.255.255.0"
echo "changing Gateway to 172.17.51.254"

sed -i 's/.*IPADDR.*$/IPADDR=172.17.51.71/g' /etc/ifcfg-eth0.txt
# ne need to change mask sed -i 's/.*IPADDR.*$/IPADDR=172.17.51.71/g' /etc/ifcfg-eth0
sed -i 's/.*GATEWAY.*$/GATEWAY=172.17.51.254/g' /etc/ifcfg-eth0.txt

Я скопировал файл icfg-eth0 в папку etc для тестирования. Когда я запускаю скрипт, я получаю ошибку

:No such file or diretorytxt
:No such file or diretorytxt

Но когда я просто использую команды в командной строке, команда работает и меняет то, что я хочу, чтобы она изменилась.

Любая идея, почему он не работает при запуске в качестве сценария?

AsteriskNOWv3(CentOS 6.2)

2 ответа2

2

Наиболее вероятная причина заключается в том, что вы отредактировали свой скрипт в Windows, и его строки заканчиваются CR-LF вместо ожидаемого одиночного LF.

Используйте команду dos2unix чтобы исправить это.

dos2unix script

Кроме того, вы можете просто запустить

tr -d `\r` < script > script.fixed
0

Похоже, вы добавили «.txt» к файлам, которые пишете, - это может показаться неправильным, как бит после «.» считается VLAN, а .txt, конечно, не является действительной VLAN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .