Linux 带星号的变量
我需要找到一些带有Linux 带星号的变量,linux,bash,ubuntu,Linux,Bash,Ubuntu,我需要找到一些带有$testhumb的图像文件,但是由于某种原因,下面的代码在我的bash脚本中不起作用,尽管我在终端中尝试了同样的方法,但它确实起了作用 randomStr=$(date | md5sum | tr -d ' -') tempThumb=$(echo "$randomStr _ tempthumb" | tr -d ' ') ls /dev/shm/$tempThumb*.jpg | sort -t '-' -n -k 2 | tr '\n' ' ' 您可以将第二行简化为:
$testhumb
的图像文件,但是由于某种原因,下面的代码在我的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
清单3在$HOME/soq
中以cs
开头并以.c
结尾的文件
[这]实际上解决了我的问题-ls/dev/shm/${testhumb}*.jpg
有趣-很高兴能帮上忙。我刚刚从Debian下载并构建了dash 0.5.7-3,并在Mac OS X 10.8.4上构建了它,然后在上面的两行脚本中使用了它,它在
dash
和sh
中都运行良好。我认为使用${atterhumb}
是一个好主意,但是我没有很好的解释为什么您会遇到这个问题。也许您对shell有一个非默认设置?unix.stackexchange.comIt是关于shell编程的-一个有限的例子,但仍然是shell编程。shell编程是关于SO的主题。您能展示一下如何填充$TENTHUMB吗?$TENTHUMB
中有什么内容吗?您可以将第二行简化为:TENTHUMB=“${randomStr}\u TENTHUMB”
。您甚至可以使用:atterhumb=$(date | md5sum | tr-d'-')\u-atterhumb
替换前两行。不过,这并不能解释问题所在。/bin/sh
是指向bash
或其他shell的链接吗?这个剧本有一句社邦式的台词吗?它是否列出了#/bin/bash
或#/bin/sh
还是别的什么?(在Mac OS X上,/bin/bash
和/bin/sh
都可以在以下位置按需工作:tt=“cs”;ls$HOME/soq/$tt*.c
,列出了以cs
开头和以$HOME/soq
结尾的3个文件)我的shebang行是#/bin/bash
=)。“也许你有一个非默认的shell设置?”我不这么认为,你玩过bash设置吗。