如何在双引号路径引用中使用`~`

问题描述

此命令会导致错误

var connectionName = 'cosmic-tenure-310821:us-central1:propertydata';
var rootPwd = "password";
var user = "root";
var userPwd = 'password';
var db = 'propertydata';

var root = 'root';
var instanceUrl = "jdbc:google:MysqL://" + connectionName;
var dbUrl = instanceUrl + "/" + db;

function createTable() {
  var conn = Jdbc.getCloudsqlConnection(dbUrl,user,userPwd);
  conn.createStatement().execute('CREATE TABLE myProperties(APN INT,APNObject MEDIUMBLOB)');
}

虽然这些命令运行良好

wc -l "~/tmp.txt"
wc: '~/tmp.txt': No such file or directory

有什么区别?如果路径中有空格,我可以做些什么来将“~”仍然包含在双引号中。

解决方法

波浪号只有在未加引号时才会展开。引用(或等效的,在前面加上反斜杠)会禁用扩展并将它们变成文字波浪号。

允许在参数中间开始和结束引号。您可以在不引用波浪号的情况下引用空格。这些都是等价的:

wc -l ~/"file name with spaces.txt"
wc -l ~/'file name with spaces'.txt
wc -l ~/file\ name\ with\ spaces.txt

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...