Моя проблема состоит в том, что мне нужно изменить вывод bash-скрипта, напечатанный с помощью echo
, используя инструмент (например, sed
или awk
), который работает в большинстве дистрибутивов GNU / Linux, и, если онвозможно и в MacOS X.
Сценарий доступен в IDE CS50, он называется apache50
и вывод его использования:
Usage: apache50 [start VHOST_DIR|restart|reload|stop|status]
Вывод, который я хочу напечатать:
Usage: cli webserver [start VHOST_DIR|restart|reload|stop|status]
Для выполнения apache50
Я передаю инструкцию в качестве аргумента функции и затем пытаюсь изменить полученный вывод:
optional_args(){
${@:2} | sed 's/apache50/cli webserver/g'
}
case $opt in:
webserver)
optional_args $opt "apache50" $@
break;
;;
esac
## output:
## Usage: apache50 [start VHOST_DIR|restart|reload|stop|status]
Мой сценарий не печатает требуемый вывод.
Вот часть apache50
:
usage() {
echo "Usage: `basename $0` [start VHOST_DIR|restart|reload|stop|status]" 1>&2
exit 1
}
case "$1" in
*)
usage
;;
esac
Если вы знаете, каксделайте это лучше, пожалуйста, сделайте мне предложение!