2012-05-23 4 views
0

Можно ли повторить, какая команда выполняется в сценарии оболочки?Повторяя, какая команда запущена в сценарии оболочки

(без положить -X в sheabang, чтобы включить режим debuggin Это не является частью процесса отладки.)

благодаря

[Edit: более подробно]

Пусть я есть сценарий вроде этого:

#! /bin/sh 

clear 
cd ~/home/ 

Как у меня есть две команды, которые выполняются (cd и clear) пр Вставить в консоль?

+3

№ Это именно то, для чего предназначен '-x'. –

+0

Uhm, ok .......... –

+1

Если вы не хотите использовать '-x', вместо этого рассмотрите' -v'. –

ответ

1

В моей версии /bin/sh (Debian Almquist Shell, тире) нет другого способа, кроме -x, чтобы получить это поведение. Эхо-команды также являются только эффект -x, поэтому я не вижу причин не использовать его.

0
echo $0 

Это будет отражать первое слово в командной строке. Если указан относительный путь, например, «./bin/test», который будет показывать весь путь, так что вы можете:

echo $(basename $0) 

Это просто эхо „тест“, вместо»./bin /контрольная работа".

Очень часто для скриптов использовать сообщения об ошибках 0 $, а не жесткое кодирование имени, потому что программа может быть переименована или вызвана из символической ссылки.

+0

Вся хорошая информация. Но я думаю, что O.P. хочет повторить, что cmd работает дальше в скрипте. И.Е. ! '#/Бен/Баш; cmd1; echo cmd2; cmd2; cmd3'. Всем удачи. – shellter

+0

Умм, я не хотел распечатывать имя скрипта ($ 0). –

+0

«echo $ 0» делает именно то, что вы просили: повторяет команду, выполняемую. Что ты хочешь? Чтобы повторить команду, которая будет запущена? Повторить команду, выполняемую в другом процессе? – Abram

Смежные вопросы