MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как сконструировать нужную команду из переданных аргументов
03.09.2009
15:39
Текстовые метки: linux, bash, аргумент, awk, команда, сконструировать, сделать, составить
Раздел: Компьютер - Linux - Bash - Команды и скрипты

Чтобы сконструировать команду из переданных аргументов, можно воспользоваться программой awk


Например:


$ echo dir file1 file2 | awk '{system("mv "$1"/"$2" "$1"/"$3")}'


То есть, здесь программе awk на вход (из стандартного потока) подается три строки, разделенные пробелами: "dir", "file1", "file2".


Внутри программы awk эти аргументы будут доступны как $1, $2, $3


Да, синтаксис awk очень странный. Аргументы надо заключать в двойные кавычки. И саму формируемую строку надо писать в двойных кавычках. Если же в самой формируемой команде нужны кавычки, то их надо экранировать. Зато апостроф внутри system() можно писать не экранируя.


Таким образом, будет сформирована строка с командой переименовывания файла:


"mv dir/file1 dir/file2"


И она будет выполнена, так как данная строка заключена в вызов функции system().


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования