Насколько я понимаю, VAR=`ls`;echo $VAR
в порядке, но вам не нравится, потому что на нем 2 команды.
Пока @Gary-Barker работает, я не проверял все системы. Если у вас возникли проблемы с тройником или чем-то другим, вы ВСЕГДА можете построить свой собственный.
Я не знаю, знаете ли вы это, но многие программы, которые вы можете использовать в Linux, представляют собой просто набор кода, использующий небольшие двоичные файлы в системе. Хотя это правда, нет смысла использовать 1 или 2 команды, потому что окончательное выполнение на самом деле состоит из множества маленьких команд.
Итак, если ваша реальная проблема заключается в том, что вы можете написать только одну команду в своей цели, вы можете написать свое собственное «приложение», создав сценарий sh в папке /sbin и оставив его без расширения .sh (поскольку они выполняются с ./ или префикс sh, а не по имени)
Я написал это в качестве примера:
#!/bin/bash
if [ $1 ]
then
VAR=$*; echo $VAR
fi
Для этого примера я создал файл /sbin/varrun. Я пробовал это с помощью следующих команд с успешным (нормальным) выводом:
varrun ls
varrun uname
varrun uname -a
Обратите внимание, что я не использовал «кавычки» для команд с пробелами.
person
m3nda
schedule
21.01.2015