かっこを付けて関数を呼び出すことにより、シェルで関数を実行するにはどうすればよいですか。
my_func()
{
echo $0
echo $1
}
my_func("aa","bb")
そんなことはありません
my_func "aa" "bb"
できません。なぜ他の言語の構文をシェルに適用したいのですか?
かっこで関数を呼び出すことにより、シェルで関数を実行するにはどうすればよいですか?
これを試して:
my_func "(" ")"
(
ほとんどのシェルでは、bashを含めることはできません。)
また、空のフォームを除いて()
、予約済みの制御演算子です。エスケープしたり引用したりすることはできますが、それはほとんど役に立ちません。
{
}
ブレースの拡張を少し乱用することができます:
my_func {1,2,3}
{1,2,3}
他の機能もありますが、「123」に展開されます。中に(引用符で囲まれていない)スペースがないことを確認する必要があります。これ{1, 2, 3}
はそのままの状態で扱われます。文字通りのコンマは引用符で囲むか、\
エスケープする必要があります。関数名の後にスペースが必要です。そうしないと、かなり異なる動作をします。
または、本当にゲームをプレイしたい場合は、 (別名)の動作[
]
とはまったく異なり、重要な解析を犠牲にして、を誤用することもできます。これは、理由を示す不完全ですが、まずまずの例です。[
test
function my_func ()
{
local IFS=" ,"
set -- $*;
for ((ff=1; ff<=$#; ff++)); do
printf "\$%i=<%s> " $ff "${!ff}"
done
printf "\n"
}
my_func [ "a",b,c ]
my_func [ 1, 2 ,3 ]
bash
そうではありませんtcl
...2つ以上の異なる言語として有効なプログラムを作成しようとしている場合は、代わりに多言語プログラムを検索する必要があります。
私はまだandをandに置き換える{
}
BEGIN
END
方法に取り組んでいます。