我期待下面的bash腳本製作只用線如何保護`*`免於在bash腳本中評估?
*~
一個的.gitignore文件,但它產生的,而不是*~
評估(在本目錄符合此格式的文件)。
#!/bin/bash
GITIGNORE=()
GITIGNORE+=("*~")
for line in "${GITIGNORE[@]}"
do
echo ${line} >> .initial-gitignore
done
如何保護*
免受評估?
我期待下面的bash腳本製作只用線如何保護`*`免於在bash腳本中評估?
*~
一個的.gitignore文件,但它產生的,而不是*~
評估(在本目錄符合此格式的文件)。
#!/bin/bash
GITIGNORE=()
GITIGNORE+=("*~")
for line in "${GITIGNORE[@]}"
do
echo ${line} >> .initial-gitignore
done
如何保護*
免受評估?
引用它,而這樣做echo
,否則會被外殼擴展:
#!/bin/bash
GITIGNORE=('*~')
for line in "${GITIGNORE[@]}"
do
echo "$line"
done >> .initial-gitignore
anubhava的解決方案是正確的,但在你的情況下,它是你最好這樣做。
cat <<EOF>> .initial-gitignore
*~
*.bk
*.backup
EOF
這是假設你想混帳忽略*~
,*.bk
,*.backup
您可以添加或刪除的[防止\ *要在bash腳本擴展]兩個EOF
一般情況下使用'<<'EOF'',除非你特別想在變量和命令擴展中執行文件。 –
可能的複製之間的任何行( http://stackoverflow.com/questions/2470638/prevent-to-be-expanded-in-the-bash-script) –