BASH выполнить команду на удаленном сервере - PullRequest
1 голос
/ 29 марта 2019

Я хочу выполнить команду, которая вернет весь существующий домашний каталог пользователя и сохранит результат в переменной bash

res=$(ssh -q -o LogLevel=error user@server << 'EOF' 
t=$(awk -F':' '{ if ( $3 >= 500 ) print $1 }' /etc/passwd)
readarray -t res_array <<< "${t}"
UHOME="/home"
for u in "$res_array"
do
  _dir="${UHOME}"/"${u}"
  if [[ -d "$_dir" ]]
then
    echo "$u"
  fi
done
EOF
)

локально код работает, но не на удаленном сервере Я использовал echo $ u для сохранения результирующего домашнего пользователя в переменной: (* ​​1004 *

1 Ответ

0 голосов
/ 29 марта 2019

сделать это:

res=$(ssh -q -o LogLevel=error user@server << 'EOF' 
t=$(awk -F':' '{ if ( $3 >= 500 ) print $1 }' /etc/passwd)
readarray -t res_array <<< "${t}"
UHOME="/home"
for u in "${res_array[@]}" # change this line
do
  _dir="${UHOME}"/"${u}"
  if [[ -d "$_dir" ]]
then
    echo "$u"
  fi
done
EOF
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...