
Ubuntu日本語フォーラム

ログインしていません。
OS:Ubuntu 12.04 LTS
Solaris上のksh93で書いたシェルスクリプトがあるので、ksh93をインストールして動かしたみました。echoコマンドの動作がSolaris上のksh93と異なるため動きません。uBuntu上のkshのechoコマンドは、
# apt-get install ksh
# ksh
$ echo "-n"
$
となります。Solaris上のksh93では
Solaris$ echo "-n"
Solaris$ -n
となります。これは仕様が異なるのでしょうか。また、
$ echo -n "-n"
$
となるので、文字列-nをechoで出力することができません。これも仕様ですか。
オフライン
仕様までは解りませんが、ubuntuのbashでもechoでの"-n"は直接表示できません。
$ echo "-n"
$
(-nの前後に、何か1文字でもあれば表示できます。)
以下の様にすると表示できました。
$ echo -e "\x00-n"
-n
$
(null charactorを入れてしまう。)
異なるshやdistribution間で共通性を持たせるならprintfの方が良いかもしれません。
$ printf "%s\n" -n
-n
$
お返事、ありがとうございます。
echo -e "\x00-n"
or
echo -e \\055n
を使わせていただきます。Solaris上のシェルスクリプトをubuntu側に移植することを考えています。問題は、シェルスクリプトがかなり膨大で、しかも、頻繁にechoを使っていることです。他の解決策がないかも検討してみます。
オフライン