我的情况无法为我的案件找到解决方案。
我需要在 bash 中运行一个长命令,例如:
node -p "const db = {1:1, 2:2};Object.keys(db).sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})"
由于这个命令相对较长,我尝试用它\
来包装我的命令。像这样:
node -p "const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})"
但它抱怨说
bash: !isNaN: event not found
我发现与此类似问题
所以我尝试替换"
为'
:
node -p 'const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})'
但这一次,\
被认为是命令的一部分,实际上毫无意义,因为我只想包装我的命令。
我该如何解决这个困境?
答案1
使用单引号和双引号的组合,或者仅将引号放在\!
引号之外。一般来说,使用单引号不会产生太大的意外。
node -p "const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return "\!"isNaN(n)})"
node -p "const db = {1:1, 2:2};Object.keys(db)\
.sort((a, b)=> a-b).map(Number).filter((n) => {return "'!'"isNaN(n)})"
node -p 'const db = {1:1, 2:2};Object.keys(db)'\
'.sort((a, b)=> a-b).map(Number).filter((n) => {return !isNaN(n)})'