bash备份脚本错误
因此,我正在编写一个简单的备份脚本,当调用该脚本时,它将备份一个特定文件或当前目录中的所有文件到备份目录中。 这是我的剧本bash备份脚本错误,bash,backup,Bash,Backup,因此,我正在编写一个简单的备份脚本,当调用该脚本时,它将备份一个特定文件或当前目录中的所有文件到备份目录中。 这是我的剧本 #!/bin/bash #verify if $1 is empty, if so, copy all content to backup directory if [ -z "$1" ] then $files=ls #Looping through files for file in $files do cp $fi
#!/bin/bash
#verify if $1 is empty, if so, copy all content to backup directory
if [ -z "$1" ]
then
$files=ls
#Looping through files
for file in $files
do
cp $file ../backup/
done
#else copy files specified
else
$files=ls $1
#Looping through files
for file in $files
do
cp $file ../backup/
done
fi
我得到的唯一错误是:
/备份:第7行:=未找到ls:命令
我不知道为什么脚本不能将ls识别为命令。有什么想法吗?你应该试着把ls写进“标记”中——最好是后面的引号。像这样:
files=`ls`
这里有一点背景。有关shell环境中引号的详细信息,请参见第页:
后引号不用于引用字符。那个角色是
用于命令替换,其中它们之间的字符为
由shell执行,结果插入该行
例如:
echo the date is `date`
你应该试着把ls放在后面的引号里。像这样:
files=`ls`
这里有一点背景。有关shell环境中引号的详细信息,请参见第页:
后引号不用于引用字符。那个角色是
用于命令替换,其中它们之间的字符为
由shell执行,结果插入该行
例如:
echo the date is `date`
要分配变量,不需要美元符号:
files=foo
要将命令的输出保存到变量,需要执行以下操作:
files=$(ls)
或
要分配变量,不需要美元符号:
files=foo
要将命令的输出保存到变量,需要执行以下操作:
files=$(ls)
或
我看到两个错误:
#!/bin/bash
files=`ls`
for file in $files
do
echo "file: $file"
done
我看到两个错误:
#!/bin/bash
files=`ls`
for file in $files
do
echo "file: $file"
done