`which` is not POSIX, and cannot be assumed to installed everywhere.
`command -v` is available in POSIX and its predecessors at least since
1994: https://pubs.opengroup.org/onlinepubs/
7908799/
It can be used as a replacement for `which` in a number of occurrences
in fio.
For bash scripts, `type -P` is available as a builtin replacement for
`which` and its $PATH search semantics.
Signed-off-by: Ville Skyttä <ville.skytta@upcloud.com>
# /bin/sh: 1: clang: not found
# if CC is not set to the full path of clang.
#
-export CC=$(which $CC)
+export CC=$(type -P $CC)
# Install PMDK libraries, because PMDK's libpmem
# is a dependency of the librpma fio engine.
# Ensure the binaries are present and executable
for bin in "$@"; do
if [ ! -x ${bin} ]; then
- which ${bin} >/dev/null
+ command -v ${bin} >/dev/null
[ $? -eq 0 ] || fatal "${bin} doesn't exists or is not executable"
fi
done
fw=$(cat ${device_dir}/firmware_rev | xargs) #xargs for trimming spaces
serial=$(cat ${device_dir}/serial | xargs) #xargs for trimming spaces
info ${device_name} "MODEL=${model} FW=${fw} serial=${serial} PCI=${pci_addr}@${link_speed} IRQ=${irq} NUMA=${numa} CPUS=${cpus} "
- which nvme &> /dev/null
+ command -v nvme > /dev/null
if [ $? -eq 0 ]; then
status=""
NCQA=$(nvme get-feature -H -f 0x7 ${device} 2>&1 |grep NCQA |cut -d ':' -f 2 | xargs)
exit 1
fi
-GNUPLOT=$(which gnuplot)
+GNUPLOT=$(command -v gnuplot)
if [ ! -x "$GNUPLOT" ]
then
echo You need gnuplot installed to generate graphs