Неоднозначное перенаправление для стандартного ввода в цикл while [закрыто]

Если бы у вас был доступ по ssh вместо https, вы могли бы использовать ssh-ключи.

Вы также можете использовать следующую нотацию URL, как предложил Andrew Pi:

git pull https://username:password@github.com/username/repository.git

и также можно просто задать пользователя, чтобы он запрашивал только пароль:

git pull https://username@github.com/username/repository.git
1
24.09.2018, 00:03
2 ответа

Похоже, это правильный способ:

while read -r entry;
do
  cmd "$entry" ;
done < <(cut -f2 file.tsv)

Согласно этой шпаргалке по перенаправлению bash , этот синтаксис передает вывод cut -f2 file.tsvв анонимный fifo, а затем передает его на стандартный ввод.

1
27.01.2020, 23:42

Ваш код можно изменить следующим образом:

cut -f2  file.tsv | while read -a entry;
do
  cmd "$entry" ;

done

Обратите внимание: всякий раз, когда вы запускаете сценарий оболочки, он создает новый процесс с именем подоболочка, и ваш сценарий будет выполняться с использованием подоболочки. Однако Subshell можно использовать для параллельной обработки. Если вы запускаете другую оболочку поверх текущей оболочки, ее можно назвать подоболочкой. Введите следующую команду, чтобы увидеть значение подоболочки:

echo $BASH_SUBSHELL

ИЛИ

echo "Current shell: $BASH_SUBSHELL"; ( echo "Running du in subshell: $BASH_SUBSHELL" ;cd /tmp; du 2>/tmp/error 1>/tmp/output)

Любые команды, заключенные в круглые скобки, выполняются в подоболочке.

0
27.01.2020, 23:42

Теги

Похожие вопросы