これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド Shell-quotep です。
プログラム:
NAME
shell-quote - 安全に使用するために引数を引用符で囲み、シェルコマンドで変更せずに使用します。
SYNOPSIS
シェル引用符 [スイッチ] ... argは...
DESCRIPTION
シェル引用符 シェルを介して任意の文字列を渡すことができます。
シェルによって変更されます。 これにより、空白が埋め込まれたコマンドやファイルを処理できるようになります。
またはシェルで文字を安全にグロビングします。 以下にいくつかの例を示します。
例
ssh 保存する 引数
ssh を使用してリモート コマンドを実行する場合、ssh は個別の引数を保存しません。
受け取ります。 それらをスペースで結合し、「$SHELL -c」に渡すだけです。 これ
意図したとおりに動作しません:
ssh ホスト タッチ 'こんにちは' # 失敗します
2つのファイルが作成されますが、 hi と そこ。 代わりに、次のようにしてください。
cmd=`shell-quote touch 'こんにちは'`
SSHホスト「$cmd」
これにより、ファイルが 1 つだけ得られます。 hi そこ.
プロセス find 出力
通常は、によって出力されたファイルの任意のリストを処理することはできません。 find
シェルスクリプト。 出力を分割するために $IFS に入力したものはすべて、合法的に次のとおりである可能性があります。
ファイル名に。 これを使用してそれを行う方法は次のとおりです シェル引用符:
eval セット -- `find -type f -print0 | xargs -0 シェル引用符 --`
debug shell スクリプト
シェル引用符 よりも優れている echo シェルスクリプトのデバッグ用。
デバッグ() {
[ -z "$debug" ] || シェル引用符「デバッグ:」「$@」
}
連絡先 echo 「debug 'foo bar'」と「debug foo bar」の違いがわかりません。
しかし、と シェル引用符 あなたはできる。
保存 a command for 後で
シェル引用符 後で実行するシェル コマンドを構築するために使用できます。 が欲しいと言ってください
ユーザーが、実行するコマンドのスイッチを提供できるようにします。 そうしないと
スイッチをシェルによって再評価してもらいたい (これは通常は良い考えですが、そうでない場合)
ユーザーが通過できないものもあります)、次のようなことができます:
ユーザースイッチ=
while [ $# != 0 ]
do
ケース x$1 インチ
x--パススルー)
[ $# -gt 1 ] || 死ぬ「$1の引数が必要です」
user_switches="$user_switches "`シェル引用 -- "$2"`
シフト;;
# 他のスイッチを処理する
ESAC
シフト
行われ
# 後で
eval "shell-quote some-command $user_switches my args"
OPTIONS
- デバッグ
デバッグをオンにします。
- 助けて
使用方法のメッセージを表示して死亡します。
- バージョン
バージョン番号を表示して終了します。
可用性
コードは GNU GPL に基づいてライセンスされています。 チェック http://www.argon.org/~roderick/ またはCPAN
更新されたバージョン。
onworks.net サービスを使用してオンラインで Shell-quotep を使用する