ホストのカップルで実行中のすべてのmariadbプロセスをリストアップし、最後にインスタンス名を持つタスクがあります(インスタンス名はプロセスを実行している同じユーザーです) それのためのスクリプト(下記)。 しかし、この場合、いくつかのホストのusername/instance_nameは3124855のような数字です。この場合、getent passwdコマンドを知っています3124855 | cut -d ':' -f1は数字ではなく正しいユーザー名を表示できます。正しいユーザー名を得るために、このコマンドをスクリプトにどのように置くのが問題なのでしょうか?bashスクリプトでgetentコマンドに参加する必要があります
#!/bin/sh
result=$(ps -ef|grep "mysqld"|grep -v grep|awk '{print $8}')
if [ -z "${result}" ] ; then
echo "no_instances"
exit 0
else
OIFS=$IFS
IFS=$'\n'
for i in $(ps -ef|grep "mysqld"|grep -v grep); do
if [[ $(`echo $i|awk '{print $8}'` --version) == *"MariaDB"* ]]; then
echo $i|awk '{print $1}'
fi
done
IFS=$OIFS
fi
'sh'は通常' bash'ではありません。 – Cyrus
http://shellcheck.netを使用して、コードをここに掲示する前に確認してください – hek2mgl