この単純なbashスクリプトがなぜ印刷されないのですかecho $1
?$1
#!/bin/bash
# function.sh
print_something () {
echo $1
}
print_something
$ ./function.sh 123 -> why doesn't it print '123' as a result?
ベストアンサー1
位置パラメータはスクリプトの基本レベルにあるスクリプトパラメータを参照しますが、機能パラメータ関数本体の内部。だから
print_something Something
実際に印刷されますSomething
。
スクリプトから関数に引数を渡すには、これを明示的に実行する必要があります。使用
print_something "$1"
最初の引数を渡すか
print_something "$@"
これらすべてを通して、例の関数は最初の関数のみを使用します。