mount /dev/sda /mnt
смонтирует устройство «sda» в каталоге «dev», содержащем файлы устройств, в каталог mnt, который является подходящей точкой монтирования для устройств. если он говорит, что разрешение отклонено или что-то еще, добавьте «sudo» перед командой выше.
Вы можете использовать подстановку команд для замены вывода команды.
Что-то вроде:
c=$(tool query -l input.txt | wc -l)
Однако ваш текущий код перезаписывает файл при каждой итерации цикла, так как вы используете >
. Чтобы добавить в файл, вы должны использовать >>
.
Кроме того, все ваши переменные кажутся ненужными, и нет никакой реальной причины touch
сначала использовать файл. Вы должны сделать это с помощью:
#!/bin/bash
for i in {10..22}
do
printf '%s\t%s\n' "chr${i}:" "$(tool query -l input.txt | wc -l)" >> number_samples.txt
done
Или, если вы хотите, чтобы файл был заполнен только данными из этого цикла, а любые потенциально существующие данные были стерты, вы можете просто записать вывод цикла в файл с помощью:
#!/bin/bash
for i in {10..22}
do
printf '%s\t%s\n' "chr${i}:" "$(tool query -l input.txt | wc -l)"
done > number_samples.txt
Хотя вывод tool query -l input.txt | wc -l
будет одинаковым для каждой итерации, поэтому я не уверен, собираетесь ли вы что-то менять input.txt
на каждой итерации?
Как предполагает Стилдрайвер, если c
не предназначено для изменения, вы можете выполнить это, не требуя цикла:
c=$(tool query -l input.txt | wc -l)
printf "chr%d\t$c\n" {10..22} > number_samples.txt