我需要在一個變量中轉義單引號。在shell腳本中轉義單引號
ssh_command 'file=$(hostname)_server-setup_$(date +%Y-%m-%d).tar.gz && cd /var && tar -zcvf $file ini | wc -l | xargs printf \'Num files: %d, File: $file\''
我可以使用雙引號的變量,但隨後的變量聲明時的內部變量進行評估,這不是我想要的。
ssh_command "file=$(hostname)_server-setup_$(date +%Y-%m-%d).tar.gz && cd /var && tar -zcvf $file ini | wc -l | xargs printf 'Num files: %d, File: $file'"
更新
現在已經想出了這一點,但隨後$file
只是打印爲$file
ssh_command(){
ssh [email protected] $1
}
ssh_command 'file=$(hostname)_server-setup_$(date +%Y-%m-%d).tar.gz && cd /var && tar -zcvf $file ini | wc -l | xargs printf '"'"'Num files: %d, File: $file'"'"
輸出
Num files: 61, File: $file
什麼是期望的輸出和你現在得到的輸出是什麼? $文件的價值是什麼? – OscarAkaElvis
[如何在單引號字符串內轉義單引號?](http://stackoverflow.com/questions/1250079/how-to-escape-single-quotes-within-single-quoted-strings) –
輸出:'Num files:x,File:/ path/to/tar' – clarkk