2013-05-13 3 views
0

Это то, что я пытаюсьПередача значения из сценария одной оболочки в другую

script1

var=10 
sh -x script2 "$var" 

Скрипт2

su - someuser << EOF 
1 
cd dir 
echo "This is : $1 Error" >> somefile 
2 
2 
0 
exit 
EOF 

Все в Скрипт2 выполняется. Когда я проверяю файл «некий-файл» выход на

This is : Error 

Он не показывает значение var

ответ

0

Это работает хорошо для меня:

cat s1 
var=10 
sh -x /tmp/s2 "$var" 

cat s2 
su - my_id << EOF 
id 
echo $1 
EOF 

./s1 
+ su - my_id 
+ 0<< 
id 
echo 10 
my_id's Password: <<< su is prompting for my password 
uid=222(my_id) gid=222(my_group) ... 
10 

Потому что вы не добавляете #!/bin/xxxxx Я считаю, что по умолчанию используется либо execute/bin/sh, либо, возможно, значение $ SHELL. Убедитесь, что вы оба ожидаете. Возможно, добавьте явный #!/Bin/ksh (или #!/Bin/sh ...), чтобы убедиться, что вы получаете оболочку, которую вы хотите/ожидаете.

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