※ IT関係は趣味でやっています
最近CygwinというのをWindows上に導入して試しています。
自分が組んでいる最中のCUIプログラム(一括処理程度のコマンドプロンプト系から動かすタイプ. C++で組んでいるとします)の
ファイル名が長いので、シェルスクリプト( *.sh )を介して、
省略名でやりたいとします。
例えば、
convertSortedString.exe という具合に長いので、省略した css.sh を用意して処理したいと思っています。
もし convertSortedString.exe のコマンドライン引数が
$ ./convertSortedString.exe --target=<処理対象の文字列> --output=<書き込み先のファイルパス>
としたとき、
Cygwin上で
$ ./css.sh --target="abc 132 121" --output=C:/test/makeup/result.txt
とやるとします。
このとき、下記の方法ではダブルクォーテーションが省かれるようで、処理ができません。
(処理そのものはやっていませんが、ダブルクォーテーションが消えているってことは...)
#!/bin/sh SCRIPTDIR=$(cd $(dirname $BASH_SOURCE); pwd) space=" " for arg in $@ do cmdlines=$cmdlines$space$arg echo ${cmdlines} done
このスクリプトを上記の css.sh --target=...というコマンドで動かすと、
--target=abc --target=abc 132 --target=abc 132 121 --target=abc 132 121 --output=C:/test/makeup/result.txt
と--target=abcから121はワンセットになるはずが、別々の引数として認識されています。
私のイメージでは
--target="abc 132 121" --target="abc 132 121" --output=C:/test/makeup/result.txt
という風に --target=...から 121" は一つの文字列としてやっているのですが...
もし私の認識でできるのなら、
css.sh <引数群>
でそのまま 内部で --target="abc 132 121" 等を渡せるのですが...
[参考]
シェルスクリプト入門
シェルスクリプト入門 書き方のまとめ | Memo on the Web
シェルスクリプト入門者のためのチェックリスト
[情報]
OS: Windows 10
その他: Cygwin (バージョンは...外出先なので...ちょっと...)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 01:17
2019/10/15 01:21