awk -F, -v q=\' '
function shellquote(s) {
gsub(q, q "\\" q q, s)
return q s q
}
$4 == "" {
printf "%s,", $1
system("cmd " shellquote($1))
next
}
{print}'
Важна часть shellquote
. Рассмотрим случай значения $1
, например, ;reboot
.
Попробуйте следующий подход:
#!/usr/bin/bash
copen() {
(($# == 1)) && xdg-open "$1" &>/dev/null & disown
}
copen "$1"
Запустите скрипт следующим образом: ./myscript SomePDFfile.pdf
&>/dev/null
- это сокращение для >/dev/null 2>&1
, добавленное в bash >4.
Функция copen
требует параметра.