gpt4 book ai didi

linux - 备份 bash 脚本的第一个参数

转载 作者:太空狗 更新时间:2023-10-29 11:49:03 26 4
gpt4 key购买 nike

我写了一个脚本来备份用户用脚本输入的第一个参数:

#!/bin/bash
file=$1/$(date +"_%Y-%m-%d").tar.gz
if [ $1 -eq 0 ]
then
echo "We need first argument to backup"
else
if [ ! -e "$file" ]; then
tar -zcvf $1/$(date +"_%Y-%m-%d").tar.gz $1
else
exit
fi
fi

我想从脚本中得到的结果是

  1. 备份文件夹用户输入的第一个参数
  2. 将备份文件以日期时间格式保存到用户输入的文件夹中。

但是当我尝试输入参数时脚本没有运行。脚本有什么问题?

最佳答案

您的脚本的备份部分似乎运行良好,但您检查 $1 不为空的部分运行不佳。

首先,您需要在 $1 周围加上引号,以防止它变成零。没有引号,shell 将其视为

if [ -eq 0 ]

并抛出错误。

其次,最好使用-z 运算符来测试变量是否存在:

if [ -z "$1" ]

现在你的脚本应该按预期工作了

关于linux - 备份 bash 脚本的第一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com