Функция bash для выполнения команды в качестве аргумента [closed]

Еще один вариант — разрезать строку:

echo ${name##* }

Это разрежет строку и сохранит часть, начинающуюся с последнего пробела до конца.

${name <-- from name  
  ##   <-- trim the front  
  *    <-- matches anything  
  ' '  <-- until the last ' '  
 }  
1
13.09.2016, 23:07
1 ответ

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

if [ "$P_SERV" = "$X_SERV" ] ; then
   sh -c "$P_CMD" >> "$P_OUT"
else
   ssh "$P_SERV" "$P_CMD" >> "$P_OUT"
fi

Не забывайте двойные кавычки вокруг замен . Например, без двойных кавычек, если P_CMD содержит символы подстановки, они будут локально раскрыты в ssh $ P_SERV $ P_CMD .

0
28.01.2020, 01:11

Теги

Похожие вопросы