1

私は次のものを持っています

#!/bin/bash
aprograms=`pgrep a`
echo $aprograms

出力:

alejandro@ubuntu:~$ bash test.sh 
2 6 7 8 12 13 16 17 20 27 ...

$aprograms 内に値があるかどうかを制御したい。私は次のことを試しました(これが有効なアプローチであるかどうかはわかりません):

if [ $value in $aprograms ];then
    echo "found"

しかし、うまくいきません。$aprograms 内に値があるかどうかを制御する正しい方法はありますか?

4

5 に答える 5

1

bash のパラメータ展開を使用できます。

shopt -s extglob
var="2 6 7 8 12 13 16 17 20 27"
if [ "${var/17?( )/}" != "$var" ] ; then echo "match"; fi
于 2012-06-06T07:55:41.497 に答える
1
#!/bin/bash

function foo () {
  echo 2 6 7 8 12 13 16 17 20 27
}

function search_value () { 
  for i in $2; do {
    if [ $i -eq $1 ]; then {
      echo "found"
    } fi
  } done
}

search_value 13 "$( foo )"

foo入力プログラムを変更するだけです:

search_value 13 "$( pgrep a )"    
于 2012-06-06T07:51:05.237 に答える
0
-eq

に等しい

if [ "$a" -eq "$b" ]
于 2012-06-06T07:51:23.393 に答える