我该如何使用!用 \ 在 bash 中包装命令?

我该如何使用!用 \ 在 bash 中包装命令?

我的情况无法为我的案件找到解决方案。

我需要在 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)})'


相关内容