If we use the combined commands directly in the truss arguments, it works fine without any problems.
However, if we use the predefined variable of the combined commands indirectly in the truss arguments, it fails.
#
# truss -adefo /tmp/not_a_term.out ls -ltr|head
total 233888
drwx------ 2 root system 256 Feb 22 2017 lost+found
-rw-r--r-- 1 root system 406 Feb 22 2017 .sr_migrate.log
-rw------- 1 root system 0 Feb 22 2017 .strload.mutex
-rw-r--r-- 1 root system 708 Feb 22 2017 ctrmc_MDdr.dbg
-rw-r--r-- 1 root system 708 Feb 22 2017 IBM.CSMAgentRM_dr.sh.dbg
-rw-r--r-- 1 root system 9114 Feb 23 2017 .tzlist
d-w------- 2 root system 256 Feb 23 2017 saved_errmbatch
d-w------- 2 root system 256 Feb 23 2017 errmbatch
-rw-r--r-- 1 root system 179 Feb 23 2017 mirror_1.out
#
#
#
# A1="ls -ltr|head"
#
#
# truss -adefo /tmp/not_a_term.out $A1
ls: Not a recognized flag: |
ls: Not a recognized flag: h
Usage: ls [-1ACFHLNRSabcdefgiklmnopqrstuxEUX] [File...]
#
#