bash 스크립트에서 MySQL 쿼리 결과 값만 가져오고 싶습니다.MySQL 쿼리 결과에서 bash로 필드를 가져 오는 방법
mysql -uroot -ppwd -e "SELECT id FROM nagios.host WHERE name='$host'"
반환 : : 내 bash는 스크립트에서 반환 된 값을 가져올 수있는 방법
+----+
| id |
+----+
| 0 |
+----+
예를 들어, 다음 명령을 실행?
bash 스크립트에서 MySQL 쿼리 결과 값만 가져오고 싶습니다.MySQL 쿼리 결과에서 bash로 필드를 가져 오는 방법
mysql -uroot -ppwd -e "SELECT id FROM nagios.host WHERE name='$host'"
반환 : : 내 bash는 스크립트에서 반환 된 값을 가져올 수있는 방법
+----+
| id |
+----+
| 0 |
+----+
예를 들어, 다음 명령을 실행?
사용 -s
및 -N
:
> id=`mysql -uroot -ppwd -s -N -e "SELECT id FROM nagios.host WHERE name='$host'"`
> echo $id
0
the manual에서 :
Silent mode. Produce less output. This option can be given multiple
times to produce less and less output.
This option results in nontabular output format and escaping of
special characters. Escaping may be disabled by using raw mode; see
the description for the --raw option.
--skip-열 이름
을 -s--silent, -N
Do not write column names in results.
편집
는 -ss
뿐만 아니라 작품과 기억하기 훨씬 쉬워처럼 보인다.
보십시오
mysql -B --column-names=0 -uroot -ppwd -e "SELECT id FROM nagios.host WHERE name='$host'"
-B는 헤더를 해제 할 열 세퍼레이터
--column - 이름 = 0으로 탭을 사용하여 결과를 출력한다.
나는 솔루션을 시도했지만 항상 빈 응답을 받았습니다. 내 경우
솔루션이었다 :
#!/bin/sh
FIELDVALUE=$(mysql -ss -N -e "SELECT field FROM db.table where fieldwhere = '$2'")
echo $FIELDVALUE
심지어 더 컴팩트 :
@의 코기의 대답에 유사id=$(mysql -uroot -ppwd -se "SELECT id FROM nagios.host WHERE name=$host");
echo $id;
가 여러 열이 탭으로 구분됩니다. –
출력으로 오류가 발생하지 않도록하려면 stderr를 리디렉션하십시오. 'id = \'mysql -uroot -ppwd -ss -e "SELECT id FROM nagios.host WHERE name = '$ host'"2>/dev/null \ "' –
여러 열을 가져 오는 방법은 무엇입니까? – Deckard