変数に格納された複数のコマンドを実行できますか?単一のコマンドが正常に動作します。
variable="echo HELLO"
$variable
こんにちは
こんなことが欲しい
variable="echo HELLO; echo WORLD"
こんにちは
世界
いいえ
こんにちは、エコワールドです。
ベストアンサー1
配列を使用する必要があります(実際には変数ではありません...)。
cmds_array+=( 'echo "Hello"' )
cmds_array+=( 'echo "World ..."' )
for cmd in "${cmds_array[@]}"; do $cmd ; done
または:awkで変数を解析します(ただし、移植性が低下する可能性があります。多くの項目にコマンド区切り文字の代わりに「;」を含めることができます...)
execute_all_cmds () {
awk -v cmds="${1}" '
BEGIN { n=split(cmds, cmd, ";")
for(i=1; i<=n; i++) { system( cmd[i] ) }
} '
}
cmds='echo "hello" ; echo "World"'
execute_all_cmds "$cmds"