2017-07-21 5 views
0

私はシェルスクリプト内のコマンドであるキーワードをエスケープするにはどうすればよいですか?私のシェルスクリプト内

#!/bin/bash 
var1=$1 
var2=$2 
cat<<new_script<<EOF 
...some code... 
for i in `find/-perm 6000 -type f`; do chmod a-s $i; done 
mkdir $var1 
...some code... 
EOF 

を持って、私は多くのことを試してみましたが、私は「検索」コマンドを脱出することはできませんよ。 これをnew_scriptに書き込むのではなく、このシェルスクリプトを実行すると、単にfindコマンドが端末で実行されます。単一引用符で

答えて

2

引用EOF

#!/bin/bash 
cat >>new_script <<'EOF' 
...some code... 
for i in `find/-perm 6000 -type f`; do chmod a-s $i; done 
...some code... 
EOF 
+0

あなたはそれを動作させるために行う「EOF」を置くんどのような変更を説明することはできますか? –

+0

一重引用符を使用しない場合、振る舞いは変数が補間され、バッククォートのコマンドが評価されます。これは、ラベルの任意の部分を引用することによって無効にすることができ、引用符で囲まれていない値で終了します。 [ソース](https://en.wikipedia.org/wiki/Here_document#Unix_shells)。 – Cyrus

+0

私も変数を使う必要があります。私は編集しました。 –

関連する問題