Заменить команды на переменную? - PullRequest
0 голосов
/ 14 мая 2019
#!/bin/bash
```
download()
{
    local url=$1
    echo -n "    "
    wget -nc --progress=dot $url 2>&1 | grep --line-buffered "%" | \
    sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
    echo -ne "\b\b\b\b"
    echo " DONE"
}
```
file="adaway.org.txt"
echo -n "Downloading $file:"
download "https://raw.githubusercontent.com/EnergizedProtection/block/master/assets/active/filter/$file"

Это все еще грубо, но работает. Я просто хотел сделать некоторые переменные, чтобы сократить дно и просто прочитать мой bash из файла cat.

1 Ответ

0 голосов
/ 14 мая 2019

Ваш вопрос неясен, но, похоже, это то, что вы пытаетесь сделать:

$ cat a.txt
http://google.com/foo
http://yahoo.com/stuff/bar

$ cat tst.sh
#!/bin/env bash

input="$1"
while IFS= read -r line; do
    path="${line%/*}"
    file="${line##*/}"
    printf '\nline="%s"\n' "$line"
    printf 'path="%s"\n' "$path"
    printf 'file="%s"\n' "$file"
    echo download "${path}/${file}"
done < "$input"

$ ./tst.sh a.txt

line="http://google.com/foo"
path="http://google.com"
file="foo"
download http://google.com/foo

line="http://yahoo.com/stuff/bar"
path="http://yahoo.com/stuff"
file="bar"
download http://yahoo.com/stuff/bar

Если нет, то отредактируйте свой вопрос, чтобы уточнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...