でいくつかの画像ファイルを見つける必要がありますが$tempThumb
、ターミナルで同じことを試してみましたが、何らかの理由で次のコードが bash スクリプトで機能しません。
randomStr=$(date | md5sum | tr -d ' -')
tempThumb=$(echo "$randomStr _ tempthumb" | tr -d ' ')
ls /dev/shm/$tempThumb*.jpg | sort -t '-' -n -k 2 | tr '\n' ' '
2 行目を次のように簡略化できます。
tempThumb="${randomStr}_tempthumb"
あなたも使用することができます:
tempThumb=$(date | md5sum | tr -d ' -')_tempthumb
最初の 2 行を置き換えます。
しかし、それは問題を説明していません。他のシェルへの、または他のシェルへ/bin/sh
のリンクですか? [回答: へのリンクです。]bash
dash
スクリプトにシバン ラインはありますか? それはリストされています#!/bin/bash
か、#!/bin/sh
それとも何か他のものですか?(Mac OS X では、 と の両方/bin/bash
が/bin/sh
スクリプトで必要に応じて機能します。
tt="cs"
ls $HOME/soq/$tt*.c
で始まり でcs
終わる3 つのファイルをリスト.c
します$HOME/soq
。)
[これは]実際に私の問題を解決しました—
ls /dev/shm/${tempThumb}*.jpg
興味深い — お役に立てて光栄です。Debian からダッシュ 0.5.7-3 をダウンロードしてビルドし、Mac OS X 10.8.4 でビルドしてから、上記の 2 行のスクリプトで使用したところ、両方とも正常に動作しましdash
たsh
。を使用する${tempThumb}
のは良い考えだと思いますが、なぜ問題が発生したのかについての適切な説明がありません。シェルの設定がデフォルトではない可能性がありますか?