我需要在一个变量中转义单引号。在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