簡體   English   中英

如何從npm運行的bash腳本中在$ 1之前打印$ 2?

[英]How do I print $2 BEFORE $1 from a bash script run by npm?

所以我對自定義npm腳本和它們運行的​​bash腳本之間的關系感到困惑。 編輯 :我不認為這是一個孤立的bash問題。 我可以通過將echo $2 $1寫入.sh文件並直接從終端運行它來產生以下所述的預期行為

例如

"scripts": {"report":"echo $2 $1"}

如果我從終端運行: npm run report "first" "second" ,因為在我的NPM劇本,我叫$2 之前 $1 ,我期待它輸出這樣的: second first ,但由於某些原因,它始終打印$1第一: first second (編輯)

我通過將參數作為變量緩存,然后打印了這些內容,從而嘗試了一種解決方法:

"scripts": {"report": "(FIRST=$1 && SECOND=$2) && echo $SECOND $FIRST"}

但輸出相同: npm run report "first" "second" => first second

是什么賦予了?

以下bash文件對我有用:

echo $2 $1

運行:

bash file.sh 1 2

輸出:

2 1

編輯*:

問題在於您嘗試使用節點的方式。 看來$ X變量未由節點填充。 它只是將您的參數附加到命令的其余部分。

編輯* 2:

解決方法

{
"scripts": {"report":"a(){ echo $2 $1; };a"}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM