2016-06-29 2 views
-2

У меня есть она скрипт как ниже содержаниеКак передать переменные оболочки в команде «эхо»

chr=$0 
start=$1 
end=$2 
echo -e "$chr\t$start\t$end" > covdb_input.bed 

Как передать КПЧ, начальную и конечную переменные в эхо команду .. или написать то же самое в файле «covdb_input.bed» с TAB sep, как в команде echo.

+1

что не работает? ваш shell-скрипт, кажется, работает нормально ... (насколько я могу судить) –

+0

Я нашел его, «chr = $ 0», он должен быть «chr = $ 1» – Kiran

+0

'$ 0' - это всегда имя скрипта –

ответ

0

Вы делаете все правильно, за исключением того, что вы, вероятно, инициализируете свои переменные неправильными вещами.

Я предполагаю, что вы получаете аргументы для скрипта (или функции оболочки) и хотите использовать их. Затем выберите позиционные переменные от $1 и далее, так как $0 обычно будет содержать имя текущего сценария оболочки или функции оболочки.

Кроме того, вы можете найти людей, которые издеваются над использованием -e с echo (это распространенная, но нестандартная опция). Вместо использования echo вы могли бы использовать printf так:

printf "%s\t%s\t%s" "$chr" "$start" "$end" >myfile.bed 

Или просто

printf "$chr\t$start\t$end" >myfile.bed 
Смежные вопросы