запуск цикла с командой bash в оболочке fish

Любая ОС Linux -с использованием /proc(, но без использования iprouteинструментов):

cat /proc/net/fib_trie|grep -A50 '\|-- 0\.0\.0\.0$'|grep -B50 -wm1 'LOCAL'|tail -n2|grep -oP '\|-- \K\S+'
0
22.09.2020, 12:11
2 ответа

Fish не совместим с bash, но использует собственный язык сценариев.

В этом случае различаются только

  1. обратные кавычки не поддерживаются (```), вместо этого используются круглые скобки.
  2. Циклы for -не используют do/done, вместо этого они просто заканчиваются на "end"

for acc in (cat uniprot_ids.txt); curl -s "https://www.uniprot.org/uniprot/$acc.fasta" ; end > uniprot_seqs.fasta

Кроме того, подстановки команд разбиваются только на новые строки, а не на новые строки/пробелы/табуляции, но я держу пари, что в любом случае есть записи в строках. Если нет, вам нужно использовать string split.

3
18.03.2021, 23:03

Это может быть довольно глупо с моей стороны, использование команды bash перед тем, что я на самом деле хочу сделать, сделало это возможным:

bash -c 'for acc in `cat meltome_protein_ids.txt` ; do curl -s "https://www.uniprot.org/uniprot/$acc.fasta"; done > uniprot_seqs.fasta'
0
18.03.2021, 23:03

Теги

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