[118063]С одной стороны, первый метод вызывает [118527]tail[118528] дважды, поэтому он должен сделать больше работы, чем второй метод, который делает это только один раз. С другой стороны, второй метод должен скопировать данные в оболочку и затем отступить, поэтому он должен выполнить больше работы, чем первый метод, в котором [118529] хвост [118530] напрямую соединен с [118531] grep [118532]. Первый метод имеет дополнительное преимущество на многопроцессорной машине: [118533] grep[118534] может работать параллельно с [118535] tail[118536], в то время как второй метод строго сериализован, сначала [118537] tail[118538], затем [118539] grep[118540].
Поэтому нет очевидной причины, почему один из них должен быть быстрее другого.
В методе 1 основные стадии:
tail[119218] читает и ищет свою отправную точку.
tail[119220] записывает 4096-байтные куски, которые [119221]grep[119222] читает так же быстро, как и они произведены.
smb://username:password@192.168.0.1/ *or whatever your volume's IP is.*
Повторите предыдущий этап для второй строки поиска.
В методе 2 основные стадии:
Если вы хотите использовать Getoptts (отметили, что «S»), чтобы получить аргументы командной строки, вы можете сделать что-то вроде
while getopts "i:n:e:" OPT; do
case "$OPT" in
i)
# do stuff with the i option
ID="$OPTARG"
;;
n)
# do stuff with the n option
;;
e)
# do stuff with the e option
;;
esac
done
Гластопты занимают 2 аргумента, строка, говоря Параметры должны искать и имя переменной для хранения текущего параметра, которую он нашел в. Строка, чтобы сказать ему, какие варианты искать, это письмо для краткого варианта, и если это позже сопровождается толстой китой. Опция берет аргумент, это не просто флаг, который установлен.
Это довольно простое. Вы можете пройти имя в качестве аргумента.
#!/bin/bash
UNIXID=$1
ldapsearch -x "(cn=$UNIXID)" | awk '/givenName/||/mobile/||/mail/'
#####################
#./lsearch in15004
givenName: Mr. Xyz
mail: x@abc.com
mobile: 9xxxxxxxx1