En Bash/ksh/zsh, puede usar algo como ${@:3:7}
para obtener los parámetros del 3 al 9 como palabras distintas, o ${*:3:7}
para concatenarlos con el primer carácter de IFS
como combinación. (7, ya que son siete en total del 3 al 9.)
entonces:
$ set -- $(seq 11 21)
$ echo "${*:3:7}"
13 14 15 16 17 18 19
o
$ a="${*:3:7}"
Sin embargo, si desea pasar esos argumentos como parámetros a otro comando, use "${@:3:7}"
directamente en la línea de comando en cuestión, es decir,
somecmd "${@:3:7}"
Si necesita hacer esto en el shell estándar, no puede usar ${var:n:m}
. En su lugar, necesitaría shift
los primeros argumentos y luego usar "$@"
, entonces:
arg1=$1
arg2=$2
shift 2
somecmd "$@"
Вопрос почти выдает это, если вы знакомы с трубами :
Для этого обратите внимание на
who
покажет каждому пользователю, который вошел в систему, а также идентификацию его компьютера.Вы можете передать эту информацию команде
grep
, чтобы отображались только строки, содержащие «kwantlen.ca». Затем вы можете передать этот вывод командеwc
, которую можно использовать таким образом, чтобы просто подсчитывать строки вывода.
Ответ, который они, вероятно, ищут, в форме, пригодной для использования с помощью csh, bash, zsh или ksh:
who | grep kwantlen.ca | wc -l
или, что короче:
who | grep -c kwantlen.ca
Ссылки: