脚本:
#!/bin/bash
url=${cat /var/scripts/test.txt | grep -oP '(?<=display_url":")[^"]+'}
for url in $display_urls; do
curl $url -O /tmp/$url.html
done
此bash脚本给我在Ubuntu上的错误替换错误。任何帮助将不胜感激。
./script.sh: line 3: ${cat /var/scripts/test.txt | grep -oP '(?<=display_url":")[^"]+'}: bad substitution
答案 0 :(得分:2)
正确的语法是:
url=$(cat /var/scripts/test.txt | grep -oP '(?<=display_url":")[^"]+')
话虽如此,为避免Useless Use Of Cat,请尝试以下操作:
url=$(grep -oP '(?<=display_url":")[^"]+' /var/scripts/test.txt)
来自 man bash :
命令替换 通过命令替换,命令的输出可以替换命令名称。 有两种形式:
$(command) or `command`
答案 1 :(得分:0)
${VARIABLE}
用于变量扩展,$(command)
用于命令替换。