Une commande shell Unix alternative à echo


4

J'essaie de générer des littéraux de chaîne dans un fichier. Jusqu'à présent, j'essayais d'utiliser la commande echo, mais malheureusement, j'ai découvert qu'il était impossible d'afficher '-n', '-e' ou '-E' (du moins pas sans compliquer le code). Existe-t-il une autre commande que je peux utiliser pour générer une chaîne littérale?

Il est préférable que la commande soit disponible sur les ordinateurs distants auxquels je me connecte. J'essaie de mettre à jour les fichiers côté distant.

Bien sûr, je peux simplement transmettre les données du côté client, mais si je le fais, je dois me reconnecter au serveur SSH après chaque commande.

La solution que j'utilise:

echo alabama | ssh server dd of=/tmp/alabama conv=fsync
echo china | ssh server dd of=/tmp/china conv=fsync

Ce que je veux faire:

(echo 'echo alamaba | dd of=/tmp/alabama conv=fsync'
echo 'echo china | dd of=/tmp/china conv=fsync') | ssh server /bin/sh

Je passe des chaînes aléatoires d'un programme aléatoire et je veux m'assurer que cette dernière forme peut fonctionner avec les chaînes '-e' et '-n' et '-N'

Réponses:



0

Pour votre exemple particulier, vous pouvez utiliser les chaînes bash here (voir man). Au lieu de cela:

echo alamaba | dd of=/tmp/alabama conv=fsync

tu peux le faire:

dd of=/tmp/alabama conv=fsync <<< alabama

Par exemple. essaye ça:

dd of="-e abc -N def" conv=fsync <<< "-e abc -N def"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.