変数へのコマンドの割り当て

変数へのコマンドの割り当て

ls私の変数にコマンドを割り当てましたが、my_File実行すると$my_File機能しません。理由を説明できますか?

#!/bin/bash
my_File='ls -f | grep -v '\/''
$my_File

ベストアンサー1

作成した行は、値がstringの変数を定義しますls -f | grep -v /。引用符なしで使用すると、単語リスト(スペースで区切られた文字列):、、、、、、、に展開lsされます。この文字は、シェルが文字列を解析する代わりに分割するため、特別ではないため、コマンドの2番目の引数になります。-f|grep-v/|ls

これらの文字列にはコマンドを入力できません。コマンドの短い名前を定義するには、エイリアス(コマンドが完了した場合)または関数(コマンドにパラメータがあり、一部のデフォルトパラメータを単一のコマンドに渡さない場合)を使用します。あなたの場合は、エイリアスが適しています。

alias my_File='ls -f | grep -v /'
my_File

おすすめ記事