变量带星号

时间:2013-08-01 21:07:14

标签: linux bash ubuntu

我需要找到一些$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' ' '

1 个答案:

答案 0 :(得分:1)

您可以将第二行简化为:

tempThumb="${randomStr}_tempthumb"

你甚至可以使用:

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

替换前两行。

但这并没有解释这个问题。 /bin/shbash或其他shell的链接吗? [答案:它是dash的链接。]

脚本是否有一个shebang线?它是否列出#!/bin/bash#!/bin/sh或其他内容? (在Mac OS X上,/bin/bash/bin/sh都可以在脚本上运行:

tt="cs"
ls $HOME/soq/$tt*.c

cs中列出以.c开头并以$HOME/soq结尾的3个文件。)

  

[这]实际上解决了我的问题 - ls /dev/shm/${tempThumb}*.jpg

有趣 - 很乐意帮助。我刚刚从Debian下载并构建了破折号0.5.7-3并在Mac OS X 10.8.4上构建了它,然后在上面的两行脚本中使用它,它在dash和{{1 }}。我认为使用sh是一个好主意,但我没有一个很好的解释为什么你遇到了这个问题。也许你有一个非默认的shell设置?