bash - Passing pipe output to Test command -
i'm confused test command syntax. goal check if file exists, file path formed sed command.
so, try, example:
echo '~/test111' | sed s/111/222/g | test -f && echo "found" || echo "not found" but command returns "found". doing wrong?
with currenty approach, saying:
test -f && echo "yes" || echo "no" since test -f returns true default, getting "yes":
$ test -f $ echo $? 0 the correct syntax test -f "string":
so want say:
string=$(echo '~/test111'|sed 's/111/222/g') test -f "$string" && echo "found" || echo "not found" which can compacted into:
test -f "$(echo '~/test111'|sed 's/111/222/g')" && echo "found" || echo "not found" but looses readability.
and can use xargs perform given action in name given previous pipe:
echo '~/test111'|sed 's/111/222/g' | xargs test -f && echo "found" || echo "not found"
Comments
Post a Comment