Мне было интересно, есть ли у нас возможность делать что-то подобное в сценарии оболочки:
(linux cmd1) > /dev/null 2>&1
b1=$(echo $?)
(linux cmd2) > /dev/null 2>&1
b2=$(echo $?)
if [ $b1 -eq 0 ]; then cmd = "cmd1";elif [ $b1 -eq 0 ]; then cmd = "cmd2"; else echo "No utility found to check blah blah..."; fi;
По сути, я пытаюсь найти способ сохранить команду в переменной cmd
(например, в строке), и однажды, когда я выясню, какой cmd
запускать, я использую ее (для выполнения) позже. часть моего сценария
> C = 'ls -al'; $ {C}
Команда название - это просто строка; для чего-нибудь более сложного прочтите Bash FAQ 50.
Может быть, вот так:
cmd = "ls -l"
$cmd
result=$?
Каковы критерии выбора одной из команд? Не лучше ли проверить, действительно ли существует команда (например,
test -f $(which one_command)
?