繁体   English   中英

Bash脚本从源文件读取变量,显示没有此类文件或目录错误

[英]Bash Script reading Variables from Source file showing No such File or Directory Error

我有一个非常简单的bash脚本,用于重置IpTables规则。 它从另一个包含bash变量的“ Config-File”中读取配置参数。 因此,我使用关键字“源”。

我正在运行带有稳定软件包的debian服务器。 Bash在版本中运行

GNU bash版本4.3.30(1)-发行版(x86_64-pc-linux-gnu)

当我在debian-Server上执行脚本时,输出将输出以下文本:

: No such file or directoryptables
: No such file or directoryptables
: No such file or directoryptables
: No such file or directoryptables
: No such file or directoryptables
: No such file or directoryptables
: No such file or directoryp6tables
: No such file or directoryp6tables
: No such file or directoryp6tables
: No such file or directoryp6tables
: No such file or directoryp6tables
: No such file or directoryp6tables

这里是Bash脚本的内容:

#!/bin/bash

CONFIG=../config/easywall.cfg

if [ -f $CONFIG ];
then
source $CONFIG
fi

eval $IPTABLES -F
eval $IPTABLES -X
eval $IPTABLES -t nat -F
eval $IPTABLES -t nat -X
eval $IPTABLES -t mangle -F
eval $IPTABLES -t mangle -X
eval $IP6TABLES -F
eval $IP6TABLES -X
eval $IP6TABLES -t nat -F
eval $IP6TABLES -t nat -X
eval $IP6TABLES -t mangle -F
eval $IP6TABLES -t mangle -X

exit 0

以及配置文件的内容:

!/bin/bash
IPTABLES=/sbin/iptables
IP6TABLES=/sbin/ip6tables

有谁知道我为什么会收到这个错误?

詹斯的评论对我有用。

首先我用

od -c filename

显示bash脚本和配置文件的内容。 bash脚本的内容很好,但是配置文件的内容显示了很多

\r\n

在里面。 我将文件转换为

dos2unix filename

错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM