我試圖捲曲的輸出分配到一個變量,像這樣:分配輸出變量猛砸
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
然而,當我運行該腳本會發生以下情況:
./update.sh: 3: =[my ip address]: not found
如何正確輸出到$IP
?
我試圖捲曲的輸出分配到一個變量,像這樣:分配輸出變量猛砸
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
然而,當我運行該腳本會發生以下情況:
./update.sh: 3: =[my ip address]: not found
如何正確輸出到$IP
?
在shell中,您不會在要分配的變量前放置$。當你引用變量時,你只使用$ IP。
#!/bin/bash
IP=$(curl automation.whatismyip.com/n09230945.asp)
echo "$IP"
sed "s/IP/$IP/" nsupdate.txt | nsupdate
與更復雜的東西一樣...從實例中獲取ec2實例區域。
INSTANCE_REGION=$(curl -s 'http://169.254.169.254/latest/dynamic/instance-identity/document' | python -c "import sys, json; print json.load(sys.stdin)['region']")
echo $INSTANCE_REGION
這正是我在我的bash腳本中所做的,並且使我無需apt-get install jq! – Nungster 2017-10-31 18:52:59
有沒有一種方法可以抑制'curl'的輸出和進度條?添加'-silent'會讓'$ IP'空...... – Dror 2014-07-14 08:30:40
@Dror,'curl'將其嘈雜的輸出發送到stderr,所以在這樣的腳本的情況下應該忽略進度條。儘管如此,'--silent'或'-s'工作得很好。如果你有麻煩,請[提問](http://stackoverflow.com/questions/ask)。 – ghoti 2014-07-14 15:46:17
curl -sS在較新版本的curl中工作 – 2016-08-03 10:04:25