0

でいくつかの画像ファイルを見つける必要がありますが$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' ' '
4

1 に答える 1

1

2 行目を次のように簡略化できます。

tempThumb="${randomStr}_tempthumb"

あなたも使用することができます:

tempThumb=$(date | md5sum | tr -d ' -')_tempthumb

最初の 2 行を置き換えます。

しかし、それは問題を説明していません。他のシェルへの、または他のシェルへ/bin/shのリンクですか? [回答: へのリンクです。]bashdash

スクリプトにシバン ラインはありますか? それはリストされています#!/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 行のスクリプトで使用したところ、両方とも正常に動作しましdashsh。を使用する${tempThumb}のは良い考えだと思いますが、なぜ問題が発生したのかについての適切な説明がありません。シェルの設定がデフォルトではない可能性がありますか?

于 2013-08-01T21:58:31.407 に答える