繁体   English   中英

带星号的变量

[英]Variable with asterisk

我需要使用$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' ' '

您可以将第二行简化为:

tempThumb="${randomStr}_tempthumb"

您甚至可以使用:

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

替换前两行。

但是,这并不能解释问题。 /bin/shbash或其他shell的链接吗? [答案:这是dash的链接。]

脚本中是否有蛇行? 它是否列出#!/bin/bash#!/bin/sh或其他内容? (在Mac OS X上, /bin/bash/bin/sh均可按脚本上的要求进行工作:

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

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

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

有趣-乐于助人。 我刚刚从Debian下载并构建了破折号0.5.7-3,并在Mac OS X 10.8.4上进行了构建,然后在上面的两行脚本中使用了它,并且dashsh都可以正常工作。 我认为使用${tempThumb}是个好主意,但是对于您为何遇到此问题,我没有很好的解释。 也许您的外壳具有非默认设置?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM