Linux

シェルスクリプト内でコマンドを実行するときはシングルクオートではなくバッククオート

シェルスクリプト内でコマンドを実行させたいことってありますよね。

例えばファイル一覧を取得してそのファイルに処理をさせたい!という時

#!/bin/sh
for f in 'ls ./'
do
 何かしらの処理
done

と書いていてうごかねー動かねーと悩んでいました。

そしたらコマンドを実行させるときは’(シングルクオート)じゃなくて`(バッククオート)で囲わなきゃいけないのでした。

ぱっと見同じように見えるので、はまりますよね。。。

バッククオートはshift + @キーで入力できます。

#!/bin/sh
for f in `ls ./`
do
 何かしらの処理
done

このように書きなおしたら思ったような動作をしてくれました。

参考文献

POSTED COMMENT

  1. yanolab より:

    シェルスクリプトなんて古いのよ!
    pythonで書くのが最近のトレンド?

COMMENT

メールアドレスが公開されることはありません。