我一直在尝试在我的12系统上安装lpng142.对我来说似乎是一个问题.我收到这个错误
[root@localhost lpng142]# ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
[root@localhost lpng142]#
Run Code Online (Sandbox Code Playgroud)
我该如何解决?该/etc/fstab文件中:
#
# /etc/fstab
# Created by anaconda on Wed May 26 18:12:05 2010
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=ce67cf79-22c3-45d4-8374-bd0075617cc8 /boot ext4
defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts …Run Code Online (Sandbox Code Playgroud) 我想在shell脚本中执行mongo命令.
我尝试了以下方式test.sh
#!/bin/sh
mongo myDbName
db.mycollection.findOne()
show collections
Run Code Online (Sandbox Code Playgroud)
当我执行上面的脚本./test.sh
然后建立了mongo连接,但未执行下一个命令
如何通过sh脚本[test.sh]执行其他命令?
请帮我
crontab是否有一个参数来创建cron作业而不使用编辑器(crontab -e).如果是这样,那么代码会从Bash脚本创建一个cronjob?
我在sh(Mac OSX 10.6)中有这个小脚本来查看一系列文件.谷歌此时已停止提供帮助:
files="*.jpg"
for f in $files
do
echo $f | grep -oEi '[0-9]+_([a-z]+)_[0-9a-z]*'
name=$?
echo $name
done
Run Code Online (Sandbox Code Playgroud)
到目前为止(显然,对于你的shell大师)$name只有0,1或2,具体取决于是否grep发现文件名与提供的内容匹配.我想要的是捕获parens中的内容([a-z]+)并将其存储到变量中.
如果可能的话,我只想使用它grep.如果没有,请不要使用Python或Perl等,sed或类似的东西 - 我是shell的新手,并希望从*nix纯粹的角度来攻击它.
另外,作为一个超酷的bonu,我很好奇如何在shell中连接字符串?我捕获的组是$ name中存储的字符串"somename",我想在其末尾添加字符串".jpg",是cat $name '.jpg'吗?
如果你有时间,请解释一下发生了什么.
我想使用以下内容将一些预定义的文本写入文件:
text="this is line one\n
this is line two\n
this is line three"
echo -e $text > filename
Run Code Online (Sandbox Code Playgroud)
我期待这样的事情:
this is line one
this is line two
this is line three
Run Code Online (Sandbox Code Playgroud)
但得到了这个:
this is line one
this is line two
this is line three
Run Code Online (Sandbox Code Playgroud)
我很肯定每个人都没有空间\n,但额外的空间是如何产生的?
我从我的shell脚本开始后台进程,我想在脚本完成时终止这个进程.
如何从我的shell脚本中获取此进程的PID?据我所知,变量$!包含当前脚本的PID,而不是后台进程.
说我有一个文件/templates/apple,我想
所以,/templates/apple将被复制到/templates/usedAND /templates/inuse
然后之后我想删除原始.
是cp最好的方法,然后rm呢?或者,还有更好的方法?
我想在一行中完成所有操作,所以我认为它看起来像:
cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple
Run Code Online (Sandbox Code Playgroud)
这是正确的语法吗?
我想从一个bash shell脚本运行一个命令,该脚本在单引号和变量中有单引号和一些其他命令.
例如 repo forall -c '....$variable'
在此格式中,$进行转义并且不扩展变量.
我尝试了以下变化,但他们被拒绝了:
repo forall -c '...."$variable" '
repo forall -c " '....$variable' "
" repo forall -c '....$variable' "
repo forall -c "'" ....$variable "'"
Run Code Online (Sandbox Code Playgroud)
如果我用值代替变量来执行命令就好了.
请告诉我哪里出错了.
bash、zsh、fish等 shell 语言与上述脚本语言之间有什么区别,使它们更适合 shell?
使用命令行时,shell 语言似乎要容易得多。对我来说,使用 bash 比在 ipython 中使用 shell 配置文件要顺畅得多,尽管有相反的报道。我认为大多数人都会同意我的观点,Python 中的大部分中型到大型编程比 bash 更容易。我使用 Python 作为我最熟悉的语言,Perl 和 Ruby 也是如此。
我试图阐明原因,但除了假设两者中对字符串的不同处理与此有关之外,我无法阐明原因。
这个问题的原因是我希望开发一种在两者中都可用的语言。如果你知道这种语言,也请张贴。
正如 S.Lott 所解释的,这个问题需要澄清一下。我在询问 shell语言的特性与脚本语言的特性。所以比较不是关于各种交互式(REPL)环境的特性,例如历史和命令行替换。该问题的另一种表达方式是:
一种适用于复杂系统设计的编程语言能否同时表达有用的单行代码,可以访问文件系统或控制作业?一种编程语言可以有效地扩展和缩减吗?