linux - 在命令中使用 shell 变量

标签 linux shell variables command

我的服务器使用的是 CentOS 5.5(几乎是 Red Hat Linux)。

我想将一组图片备份到带有时间戳的文件中。 这段代码可以工作:


z_cmd1=$(tar cvzf /home/user1/public_ftp/misc/pics_20100925_142230.tar.gz /home/user1/public_html/misc/_pics_var/F???????.jpg)
echo "tar output =[${z_cmd1}]"

当然我希望时间戳是自动的。

以下代码无效。不知何故,第三行(带有 tar 的那一行)失败了。 “tar”做了一些事情,但它没有在预期的目标文件夹中创建任何文件。为什么?


z_fname=$(date +"/home/user1/public_ftp/misc/pics_%Y%m%d_%H%M%S.tar.gz")
echo "File name =[${z_fname}]"
z_cmd1=$(tar cvzf ${z_fname} /home/user1/public_html/misc/_pics_var/F???????.jpg)
echo "tar output =[${z_cmd1}]"

谢谢。

最佳答案

试试这个:

mydate=`date +"%m-%d-%Y"`;
input="/home/user1/public_html/misc/_pics_var/F???????.jpg";
output="/home/user1/public_ftp/misc/pics_$mydate.tar.gz";
tar cvzf $output $input && echo "$output created succesfully!";
if [ ! $? == 0 ]; then echo "$output failed"; fi;

我们创建一个日期作为变量。 我们使用输出变量中的日期变量创建输入和输出变量。 然后执行命令,检查是否执行无误。

关于linux - 在命令中使用 shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793827/

相关文章:

linux - 从操作系统接收 SIGTERM

c - * 在 linux 命令行上

java - 从 Shell 脚本启动 Java 服务器

java - Android 如何将变量分配给按钮?

c - c中的全局变量

Linux 上的 Java : maximize a non-Java GUI application

macos - 用于使用多个条件查找文件的 OSX 终端命令

shell - 是否有适用于 Windows 的 KornShell (ksh) IDE?

C 多个单行声明

java - 导入迁移布局。