ssh
を使用してリモートマシンで使用可能なスクリプトを実行しようとしています。 sshを介してクライアントから実行された場合、またはsshの後でサーバに実行された場合の出力は異なります。リモートマシンで実行可能なスクリプトを実行
スクリプトはファイルをトリミングします。 クライアント側から実行するには
tail -n 100 users.txt > temp.txt
rm users.txt
mv temp.txt users.txt
echo $(wc -l users.txt)
echo Done
:
[email protected]_mac $ ssh [email protected]_mac '~/path_to_script/demo_script.sh'
出力:
0 users.txt
Done
しばらくサーバ側でssh'ing後:
[email protected]_mac $ ssh [email protected]_mac
[email protected]_mac $ cd ~/path_to_script/
[email protected]_mac $ ./demo_script.sh
出力:
100 users.txt
Done
どのように我々は、リモートマシン上で利用可能であるスクリプトを実行しますか?構文は異なりますか?
同じ結果が得られるはずです。私はそれが適切だとは思わないが、 'wc -l users.txt'で十分です。 'echo'に渡すためにコマンド置換でそれを呼び出す必要はありません。 – chepner
実際、最初の例の作業ディレクトリは '〜/ path_to_script'ではなく、'〜/ users.txt'と '〜/ path_to_script/usersという2つの異なるファイルのサイズを取得しているようです。 txt'。 – chepner
はい、現在の作業ディレクトリに問題がありました。 '〜/ path_to_script/users.txt'パスを取るように' demo_script.sh'を修正した後で正しく動作します。 –