Linux 异常保存到文件的Shell脚本
我已经写了一个简单的shell脚本Linux 异常保存到文件的Shell脚本,linux,shell,mail-queue,Linux,Shell,Mail Queue,我已经写了一个简单的shell脚本 count=`mailq -v` var=$(mailq -v) echo "$var" > /home/xxxxxx/textis.txt 它工作正常,并将mailq的结果输出到txt文件,没有问题。但是,当我添加一行并将其更改为 count=`mailq -v` var=$(mailq -v) echo "$var" > /home/xxxxxx/textis.txt (cat mailtext; uuencode /home/xxxxxx/
count=`mailq -v`
var=$(mailq -v)
echo "$var" > /home/xxxxxx/textis.txt
它工作正常,并将mailq的结果输出到txt文件,没有问题。但是,当我添加一行并将其更改为
count=`mailq -v`
var=$(mailq -v)
echo "$var" > /home/xxxxxx/textis.txt
(cat mailtext; uuencode /home/xxxxxx/textis.txt /home/xxxxxx/textis.txt) |
mail -s "Mail Queue alert" xxxxxx.orr@gmail.com
它只是添加了邮件行,现在不会更新文件
我对shell脚本非常陌生,一天来一直在努力解决这个问题,所以任何帮助都会很好我已经测试了这个脚本的两个版本,而且两个版本似乎都适合我(一旦我做了一些小的更改以适应我的系统)。您能否澄清,在脚本的第二个版本中未更新的是
textis.txt
?顺便说一句,我注意到两个脚本的第一行都没有任何用途,因为随后没有使用count
。不过,这是我能看到的脚本中唯一的错误。如果作为测试,您将mailq-v
替换为date
(其输出保证每秒钟更改一次),textis.txt
是否仍然不会因为第二个脚本而更改?为什么您同时拥有count=`mailq-v`
和var=$(mailq-v)
?为什么使用这两种符号,为什么两次捕获相同的信息?使用$(…)
表示法,而不是旧的反引号表示法。@Waxrat:至少在macOS Sierra上,uencode
总是无条件地写入标准输出。它按照您的建议使用两个名称,但out
名称是begin
行中使用的名称。例如,运行uencode fa37.sh function array.sh
g生成输出起始begin 644 function array.sh
,从fa37.sh
读取输入。如果未指定文件中的,则输入来自标准输入(uuencode
还生成起始begin 644 function array.sh
的标准输出)。感谢回复。textis.txt用于存储邮件队列命令的输出,第二部分中缺少该命令,因为我无法复制和粘贴:(我使用uuencode,因为这是我能找到的唯一方法,让附件在发送时可读。我想知道我的服务配置是否有问题,因为Simon可以让它工作,我应该能够在没有编码的情况下传递文本文件?