如何保护“*”不在bash脚本中被计算?

如何保护“*”不在bash脚本中被计算?,bash,Bash,我希望下面的bash脚本生成一个.gitignore文件,其中只包含一行 *~ 但它会生成*~(当前目录中与此模式匹配的文件)的求值 如何保护*不被评估?在执行echo时引用它,否则它将被shell扩展: #!/bin/bash GITIGNORE=('*~') for line in "${GITIGNORE[@]}" do echo "$line" done >> .initial-gitignore 在执行echo时引用它,否则它将由shell展开: #!/b

我希望下面的bash脚本生成一个.gitignore文件,其中只包含一行

*~
但它会生成
*~
(当前目录中与此模式匹配的文件)的求值


如何保护
*
不被评估?

在执行
echo
时引用它,否则它将被shell扩展:

#!/bin/bash

GITIGNORE=('*~')

for line in "${GITIGNORE[@]}"
do
    echo "$line" 
done >> .initial-gitignore

在执行
echo
时引用它,否则它将由shell展开:

#!/bin/bash

GITIGNORE=('*~')

for line in "${GITIGNORE[@]}"
do
    echo "$line" 
done >> .initial-gitignore

阿努巴瓦的解决方案是正确的,但在你的情况下,你最好这样做

cat << EOF >> .initial-gitignore
*~
*.bk
*.backup
EOF
cat>。初始设置忽略
*~
*.bk
*.备份
EOF

假设您希望git忽略
*~
*.bk
*.backup
您可以添加或删除两个
EOF
之间的任何行,anubhava的解决方案是正确的,但在您的情况下,这样做更好

cat << EOF >> .initial-gitignore
*~
*.bk
*.backup
EOF
cat>。初始设置忽略
*~
*.bk
*.备份
EOF
这是假设您希望git忽略
*~
*.bk
*.backup
您可以添加或删除两个
EOF

通用
的可能重复的可能重复的任何行