Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 异常保存到文件的Shell脚本_Linux_Shell_Mail Queue - Fatal编程技术网

Linux 异常保存到文件的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/

我已经写了一个简单的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/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可以让它工作,我应该能够在没有编码的情况下传递文本文件?