-1
mkdir -p
コマンド出力を変数に保存したいと思います。 EX用変数にmkdir -pコマンド出力を格納
: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
のでecho $MY_DIR
が/opt/mydir
を示すべきであるが、私は所望の出力を得ていないのです、誰が助けてくださいすることができますか?
mkdir -p
コマンド出力を変数に保存したいと思います。 EX用変数にmkdir -pコマンド出力を格納
: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
のでecho $MY_DIR
が/opt/mydir
を示すべきであるが、私は所望の出力を得ていないのです、誰が助けてくださいすることができますか?
mkdir -p
には出力がありません(つまり、stdoutに何も書き込まない)。
正しい行動はあなたがmkdir
に渡すする前に、ディレクトリ名を形成することである。
my_dir="$HOME/mydir"
mkdir -p -- "$my_dir"
あなたはmkdir
からstderrのをキャプチャしたい場合は、あなたのコマンド置換の内部標準出力にリダイレクト:
my_dir="$HOME/mydir"
mkdir_msgs=$(mkdir -p -- "$my_dir" 2>&1)
printf 'mkdir wrote the following messages: <%s>\n' "$mkdir_msgs"
'mkdir'コマンドは出力を提供しません。あなたが作成したいディレクトリを既に知っているので、 'mkdir'と同じように変数に格納するだけではどうですか? –
'mkdir -p'はテキスト出力を提供しません。これは' MY_DIR = $(mkdir -p $ HOME/mydir) 'の呼び出しに必要なものです。 'MY_DIR =" $ HOME/mydir "を実行する必要があります。 mkdir -p "$ MY_DIR" 'またはそれに類するもの。 – Petesh
... aside - all-caps変数名は、POSIX指定の規則によって、シェルやオペレーティングシステムの意味を持つ変数に対して使用されますが、少なくとも1つの小文字の変数は、アプリケーションの使用のために予約されています。 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html第4段落を参照してください。 –