• ベストアンサー

コマンドのを教えてください

以下のコマンドが思うように動きません。 Ubuntuで実行しています。 xとyの乱数を出してそれを${x}と${z}に入れて実行したいのですが数字が入りませんなぜなのでしょうか? 教えてください #!/bin/bash SCREEN_NAME='minecraft' x='echo $RANDOM' z='echo $RANDOM' sudo screen -p 0 -S ${SCREEN_NAME} -X eval 'stuff "spreadplayers ${x} ${z} @a\015"'

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.4

>sudo screen -S $SCREEN_NAME -X stuff 'setworldspawn ${x2} ${y2} ${z2}\015' #2の方が例で書かれた部分だけしか目に入ってないようなんですけど 注意されたものが上記の部分にも見当たりませんか。

hikatyann77
質問者

お礼

ありがとうございます!見落としてました。

その他の回答 (3)

  • _kappe_
  • ベストアンサー率68% (1600/2328)
回答No.3

回答No.2の者です。 バッククオートを使っても、クオート無しで単に$RANDOMを使っても、想定通りに動作しました。下記の結果を見てください。 $ cat random.sh x='echo $RANDOM' y=`echo $RANDOM` z=$RANDOM echo x = ${x} echo y = ${y} echo z = ${z} $ bash random.sh x = echo $RANDOM y = 10633 z = 13281

hikatyann77
質問者

お礼

ありがとうございます!助かりました!

hikatyann77
質問者

補足

そちらのコマンドは動作するようになりました。 ですが以下のコマンドは正常に作動せず「${x2} ${y2} ${z2}」の部分が0(値が表示されない)です。 #!/bin/bash SCREEN_NAME='minecraft' y2=`echo $RANDOM` z2=`echo $RANDOM` x2=`echo $RANDOM` sudo screen -S $SCREEN_NAME -X stuff 'setworldspawn ${x2} ${y2} ${z2}\015'

  • _kappe_
  • ベストアンサー率68% (1600/2328)
回答No.2

シングルクオートではなくバッククオートを使ってください。バッククオートは、日本語キーボードの場合Shift+@で入力できます。 × x='echo $RANDOM' ○ x=`echo $RANDOM` しかし、この場合はわざわざechoを使う必要はなく、単純に x=$RANDOM でいいのではないかと。

hikatyann77
質問者

補足

#!/bin/bash x=`echo $RANDOM` z=`echo $RANDOM` echo ${x} ${z} のスクリプトでも表示されませんでした

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

シングルクォテーションで囲んだ場合、シェル変数の展開等はしないですよ。

関連するQ&A