Использовать обратную косую черту
if [ $(do_something "arg1") ] || \
[ $(do_something "arg2") ] || \
[ $(do_something "arg3") ]
then
echo "OK"
else
echo "NOT OK"
fi
EDIT
Также - я хочу убедиться, что даже если первое условие истинно, все остальные условия будут по-прежнему оценены. [!d3 ]
Это невозможно только в одном выражении if. Вместо этого вы можете использовать цикл for, который выполняет итерацию по аргументам и оценивает их отдельно. Что-то вроде:
do_something() {
for x in "$@"
do
if [need to do something on $x]
then
do it
else
echo "no action required on $x"
fi
done
}
Комментарий от tim решит первую часть вопроса.
Запуск history на терминале показывает команды, ранее выполнявшиеся на терминале.
Запуск history >> file.txt на терминале создает file.txt в домашнем каталоге, который имеет в качестве записи команды, ранее выполнявшиеся на терминале.