繁体   English   中英

unix中的shell脚本错误

[英]shell script error in unix

在目录中使用1#做什么?

cpfile = $ {1#/ usr / newconfig} ls -l $ cpfile | 读var1 echo var1

我正在尝试理解脚本,但我找不到任何可以帮助我确定此命令含义的资源。

通常,可以使用#修改变量,这会删除前导字符串。 如果a是一个含有foobar内容的变量,那么${a#foo}删除foo并计算为bar 在您的情况下,$ 1是位置参数, ${1#/usr/newconfig}是从开头删除“/ usr / newconfig”的字符串的值。 如果它不匹配,则表达式求值为与$ 1相同的字符串。

但是,这个脚本有一个相当重要的问题,它在运行的ls的环境中分配cpfile,但是ls不接收它作为参数。 结果, ls将在当前工作目录上运行,而不是在作为参数传递给脚本的目录上运行。 (除非先前在某个地方的脚本中分配了cpfile 。)

暂无
暂无

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

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