我想问你如何隐藏我的函数的回声,但仍然使用它的echo作为下一个处理的变量。
我的代码是:
function str_str {
local str
str="${1#*${2}}"
str="${str%%$3*}"
echo -n "$str"
}
mystr=$(cat /etc/logrotate.conf)
str_str "$mystr" "access.log" "}"
OKACCESS=$(str_str "$mystr" "access.log" "}" | grep -e "daily" -e "size" -e "rotate" -e "create" -e "weekly" -c)
echo $OKACCESS
当我删除:
echo -n "$str"
我不能将它用作OKACCESS的变量,它返回0,应该返回4(使用echo未隐藏或传递给dev> null)。
如何在不限制OKACCESS变量定义的情况下隐藏函数的输出?
感谢您的帮助。
E:
我想做什么:
当我执行当前脚本时,其输出为:
[root@env test]# ./tester.sh
{
missingok
daily
rotate 10
create 0664 jboss jboss
postrotate
/usr/bin/kill -s SIGHUP `cat /var/run/syslogd.pid`
endscript
dateext
4
当我删除“echo -n”$ str“”部分时,我得到了这个:
0
我需要这个:
4
答案 0 :(得分:2)
这将隐藏第一个函数调用的输出:
str_str "$mystr" "access.log" "}" > /dev/null