将变量附加到shell脚本,如URL变量?

时间:2010-12-28 13:55:21

标签: bash

我正在使用Carbon Copy Cloner备份一些文件并在备份过程完成后运行shell脚本。

注意:您可以在Carbon Copy Cloner中保存计划备份,并将其设置为在备份后运行特定的shell脚本。

shell脚本emailbackupstatus.sh看起来像这样,工作正常:

#!/bin/sh

(sleep 10; /usr/libexec/PlistBuddy -c "Print" /Library/Logs/CCC.stats | tail -n 9 | mail -s "Backup completed" myname@mydomain.com) &

注意:遗憾的是,plist文件CCC.stats不包含我保存的备份计划的名称。

但由于我每天都有几个预定的备份,每天都会收到几封相同的电子邮件。因此,我想在shell脚本中附加一个变量,以便我可以将电子邮件更改为以下内容: “备份$ backupName已完成”

将变量传递给shell脚本:
有可能以某种方式将变量传递给我的shell脚本,就像你可以用PHP中的GET url变量一样吗?这样的事情:emailbackupstatus.sh&$backupName="Just testing"

甚至更好:
只需在Carbon Copy Cloner中获取已保存的已保存备份的名称,并将其附加到电子邮件主题中?

我收到的电子邮件如下:
   Dict {
       targetDisk = root@backup.myserver.net:/ Volumes / BACKUPDESTINATION /
       date = Sun Dec 28 00:24:52 CET 2010
       dataCopied = 0
       elapsedTime = 1467.495361
       sourceDisk = / Volumes / BACKUPSOURCE
       exitStatus = 0
   }
}

2 个答案:

答案 0 :(得分:0)

您可以像对待任何其他程序一样将参数传递给shell脚本:

$ some_script.sh arg1 arg2 arg3

Here是一个关于如何在脚本中使用它们的小教程。

答案 1 :(得分:0)

$ ./script.sh foo bar mysubject

可以通过示例访问位置(编号)变量:

#!/bin/bash

echo "Hello arg1=$1 and arg2=$2"

echo "here I am" |mail -s "My submject is $3" me@domain.com