Unix サーバーでの echo コマンドの問題

Unix サーバーでの echo コマンドの問題

以下の echo コマンドを使用して、いくつかの構成を UNIX エンドポイントにコピーしようとしていますが、コピー後にいくつかの文字が欠落したり、プレフィックスが付加されたりすることがあります。以下に例を示します。

ここであなたの提案が必要です。

set system login user b48368 authentication encrypted-password '$1$trz5zI9f$2jL1PHnXNxY/'
set system login user b48368 authentication plaintext-password ''
set system login user bb0k93 authentication encrypted-password '$1$/y8uENjM$C7WQQZDQRbRJOeh/'
set system login user bb0k93 authentication plaintext-password ''
set system login user bb0k93 level 'admin'
set system login user bb0r4w authentication encrypted-password '$1$2.i88iIa$ZkREPOKUNjaJflNJ4/'
set system login user bb0r4w authentication plaintext-password ''
set system login user 430140 authentication encrypted-password '$1$qs.a5lXh$zjsssrtmCjsaSIfAv1'
set system login user 430140 authentication plaintext-password ''
set system login user 430140 level 'admin'
set system login user pa3n authentication encrypted-password '$1$yffNZqPG$EpMR/2RxniVYq0'
set system login user pat3n authentication plaintext-password ''
set system login user pa4n authentication encrypted-password '$1$NKWjQnX8$ZExZcYAm7ECEyI2/'
set system login user pa4n authentication plaintext-password ''
set system login user pa5n authentication encrypted-password '$1$8Km21dzm$q2NlHcRlZX1Oc6M0'
set system login user pa5n authentication plaintext-password ''
set system login user pa6n authentication encrypted-password '$1$qjkBDXXU$vJn4o6gF7aK/i/'
set system login user patn authentication plaintext-password ''
set system login user root authentication encrypted-password '$1$T1PHVDEj$UXtfPX/yuGtm0'
set system login user root authentication plaintext-password ''

コピーされた出力、いくつかの文字が欠落しています

set system login user a48368 authentication encrypted-password 'jL1hU238TJXNxY/'
set system login user a48368 authentication plaintext-password ''
set system login user ab0k93 authentication encrypted-password '$/y8uENjM/'
set system login user ab0k93 authentication plaintext-password ''
set system login user ab0k93 level 'admin'
set system login user ab0r4w authentication encrypted-password '.i88iIa/'
set system login user ab0r4w authentication plaintext-password ''
set system login user 430140 authentication encrypted-password '.a5lXh'
set system login user 430140 authentication plaintext-password ''
set system login user 430140 level 'admin'
set system login user pt3n authentication encrypted-password '/2RxnpQU7CiVYq0'
set system login user pa3n authentication plaintext-password ''
set system login user pa4n authentication encrypted-password '/'
set system login user pa4n authentication plaintext-password ''
set system login user pa5n authentication encrypted-password 'Km21dzm'
set system login user pa5n authentication plaintext-password ''
set system login user pa6n authentication encrypted-password '/oAi/'
set system login user pa6n authentication plaintext-password ''
set system login user root authentication encrypted-password '/yuGtuKm0'

答え1

echo コマンドを使用した場合、おそらく二重引用符で囲んでいるでしょう。これにより、テキストの解釈が可能になります。特に、$XXX は変数 XXX として認識され、その変数への参照はその変数の内容 (通常は何もない) に置き換えられます。

これを回避するには、データを別の方法で入力するか、文字列を適切にエスケープする必要があります。この場合、文字どおりに解釈されるように、「$」記号の前に「\」を付けることで、これを実行できる可能性が最も高くなります。

これをどのように使用するか(ソースなど)については説明していませんが、別の方法としては「ヒアドキュメント「」は、ソースファイルからの入力を生のテキストとして扱い、それをリダイレクトすることができます。

関連情報