我正在嘗試創建一個腳本,該腳本創建另一個使用 $1 和 $# 的腳本,問題是這些變量正在由第一個腳本解釋,因此它們是空的。這是我的問題,第一個腳本創建腳本/tmp/test.sh
#!/bin/bash
cat << EOF > /tmp/test.sh
#!/bin/bash
echo $1
echo $#
EOF
結果在/tmp/test.sh
:
#!/bin/bash
echo
echo 0
有誰知道如何避免這一點,並在獲得/tmp/test.sh
$1
和$#
?
我想在/tmp/test.sh
:
#!/bin/bash
echo $1
echo $#
提前致謝。
引用 here-document 分隔符,以便將 here 文檔的內容視為文字文本(即,就像出現在單引號字符串中一樣)。
cat << 'EOF' > /tmp/test.sh
#!/bin/bash
echo $1
echo $#
EOF
任何引用都有效,而不僅僅是單引號。唯一重要的是至少要轉義一個字符。
cat << \EOF
cat << "EOF"
cat << E"O"F
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句