[英]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/sh
是bash
或其他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上进行了构建,然后在上面的两行脚本中使用了它,并且dash
和sh
都可以正常工作。 我认为使用${tempThumb}
是个好主意,但是对于您为何遇到此问题,我没有很好的解释。 也许您的外壳具有非默认设置?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.