获取printf以将结果追加到行尾

时间:2014-07-02 15:40:44

标签: bash printf sh

示例:

Output "Checking something..."

运行功能

追加该函数返回到行尾的内容。

Checking something...       [ OK ]

3 个答案:

答案 0 :(得分:0)

您可以使用:

printf "Checking something...\t%s\n" "$(myFunction)"

答案 1 :(得分:0)

试试这个:

echo -n "Checking something..."
# do some other stuff
echo "       [OK]"

-n会阻止正常换行...

答案 2 :(得分:0)

好的,如果你想这样做,你必须决定实际行为应该是什么。

假设你在一个足够现代的bourne shell(比如bash)中这样做,那么,

#!/bin/sh

exec 5>output.log
exec 6>&1

st_echo='printf %s\n'
st_echo_n='printf %s'

## crude control over outputs, you can use getopts or better 
## way to pass flags (beyond scope of this question) 

if [ "$1" = "--silent" ] ;then
     exec 6>/dev/null
fi

if [ "$1" = "--no-log" ] ; then
     exec 5>/dev/null
fi

$st_echo_n "Checking something..." >&6

try_step_1() {
    your_step_1 arg1 arg2 
    another_combination_step
} >&5 2>&5

if try_step_1 ; then
    st_echo OK
else
    st_echo FAIL
fi