我尝试了一个简单的
if [ 1 == 1 ]; then echo "Hi"; fi >>/projects/ods/Chk.txt
包含在命令任务中,但失败并显示错误代码512 ....
我在这里错过了什么?
答案 0 :(得分:0)
if/fi
块无法重定向输出。
使用
if [ 1 == 1 ]; then echo "Hi">>/projects/ods/Chk.txt; fi
正如您所指出的,这是一个简单的测试用例,如果您需要从更大的if/the/else/fi
块或其他逻辑块输出,您可以将它全部包装在进程组中并重定向该输出。
{
if [ 1 == 1 ]; then
echo "Hi"
else
echo "nope"
fi
} >>/projects/ods/Chk.txt
此外,使用==
可能会出现问题。通常,您使用1 -eq 1
或其他结构(如if true ; then
),或者如果您真的想要进行良好的数学比较,请使用if (( 1 == 1 )) ; then ...
,但较旧的shell可能支持也可能不支持{{1}测试。
IHTH
答案 1 :(得分:0)
在搜索我的一些查询时找到了这个。 你应该使用创建模式而不是追加模式。 >>不起作用,同样发生在我身上。试试这个,如果你仍然面对这个并需要一个答案。 :)