`

Shell - No such file or directory

阅读更多
【基本介绍】
在编写shell脚本的时候也会经常出现“/bin/grep: |: No such file or directory”类似的错误,特别是在执行的命令是变量的情况

【简单案例】
[root@bogon script]# cat aa.sh 
aa="/bin/grep Accepted /root/test.log | /bin/grep -v something" 
tmp=`$aa`
[root@bogon script]# bash aa.sh 
/bin/grep: |: No such file or directory
/bin/grep: something: No such file or directory


解决方法可以使用eval命令
[root@bogon script]# cat aa.sh 
aa="/bin/grep Accepted /root/test.log | /bin/grep -v something" 
tmp=`eval $aa`
[root@bogon script]# bash aa.sh 
[root@bogon script]# 
[root@bogon script]# 



【eval】
eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。
[root@bogon script]# cat dd.sh 
X=10
Y=X
echo '$'$Y
echo $$Y
echo ${$Y}
eval echo '$'$Y
[root@bogon script]# bash dd.sh 
$X
40342Y
dd.sh: line 5: ${$Y}: bad substitution
10

【参考】
http://www.softpanorama.org/Utilities/eval.shtml
http://kmoving.blog.163.com/blog/static/205049197201242511250128/
分享到:
评论

相关推荐

    解决Linux上MongoDB启动脚本错误---env: /etc/init.d/mongodb : no such file or directory

    然而,在使用过程中,有时会遇到启动脚本错误,如"env: /etc/init.d/mongodb : no such file or directory"。这个错误提示表明系统无法找到MongoDB的初始化脚本来启动服务。下面我们将深入探讨这个问题的原因以及...

    arm交叉编译工具错误解决方法

    错误信息“cannot open `+43' for reading: No such file or directory”表明存在文件路径或格式问题。这通常是因为脚本中的某些参数或命令没有被正确处理。解决办法是检查并修改脚本中的相应行,比如: ```bash ...

    内含:jdk-8u131-linux-x64.tar.gz , linux 配置JDK的方法说明

    - 编辑系统环境变量配置文件,如`~/.bashrc`或`~/.bash_profile`,取决于你的Shell类型。 - 在文件末尾添加以下行,替换`JAVA_HOME`为你实际的JDK安装路径: ``` export JAVA_HOME=/usr/lib/jvm/java-8-oracle ...

    hadoop hbase_shell操作命令

    HBase Shell是HBase提供的一个交互式的命令行界面,用于管理HBase表和执行各种操作。下面我们将深入探讨HBase Shell的一些常用操作命令。 1. **创建表**: 使用 `create` 命令可以创建HBase表。例如,创建一个名为...

    csapp-shell-labcsapp-shell-labcsapp-shell-lab

    1. **Copy the File**: Copy the `shlab-handout.tar` file to the protected directory (the lab directory) where you plan to do your work. 2. **Expand the Tar File**: Type the command `tar xvf shlab-...

    Hadoop SSH免密码登录以及失败解决方案

    在Hadoop集群管理中,SSH(Secure Shell)是一种常用的安全协议,用于在不同节点之间进行远程命令执行和文件传输。为了简化操作,管理员通常会配置SSH免密码登录,这样在不同节点间切换时无需反复输入密码。本文将...

    带rtmp模块的nginx安装脚本

    本文将深入探讨如何使用shell脚本来自动化在CentOS 7上安装带有RTMP模块的Nginx。 首先,我们需要了解`install.sh`脚本的基本结构。这个脚本通常包括以下步骤: 1. **更新系统**:在开始安装新软件之前,首先要...

    getcwd cannot access parent directories错误解决方法

    shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory 该错误表示 getcwd 命令无法定位到当前工作目录。一般来说是因为你 cd 到了某个目录之后 ...

    x11-ssh-askpass-1.2.4.1.tar.gz

    在远程服务器上工作时,如果没有图形界面,通常会通过SSH(Secure Shell)进行命令行交互。SSH是一种加密网络协议,用于在不安全的网络上安全地执行远程命令和传输数据。 SSH Askpass是一个辅助程序,当SSH需要用户...

    create_directory_struct:用于创建目录结构的Shell脚本

    本文将详细讲解如何利用Shell脚本来创建目录结构,以及`create_directory_struct-main`这个文件可能包含的内容和相关知识点。 首先,让我们了解什么是Shell脚本。Shell是操作系统提供的一种命令解释器,它接收用户...

    MS-DOS 5.0

    Before running Setup, open the CONFIG.SYS file and remove or comment out the DEVICE command that installs the caching software for your Iomega Bernoulli drive. 2.13 AT&T 6300 Computers -------------...

    Senfore_DragDrop_v4.1

    * The Shell Extension components does not support C++ Builder 4. For some strange reason the components causes a link error. * There appear to be sporadic problems compiling with C++ Builder 5. ...

    debian-locale:Debian

    cannot change mode of new locale archive: No such file or directory en_US.UTF-8... failed Generation complete. Generating locales... cannot change mode of new locale archive: No such file or ...

    解决Python在导入文件时的FileNotFoundError问题

    FileNotFoundError: [Errno 2] No such file or directory: 'images/model_mnist.png' ``` 此错误表明Python无法找到指定路径下的文件。究其原因,可能是由于文件路径设置不正确,例如当前工作目录下不存在`images`...

    采用shc工具加密Shell脚本1

    在安装过程中,如果遇到错误提示`install: target `/usr/local/man/man1/' is not a directory: No such file or directory`,需要先创建缺少的目录,再运行`make install`。 在使用`shc`时,有几个重要的参数需要...

    crontab执行结果未通过发送mail通知用户的方法

    postfix/postdrop[5487]: warning: unable to look up public/pickup: No such file or directory ``` 为了解决这个问题,需要创建`postfix`服务所需的文件,并赋予相应的权限: ```bash sudo mkfifo /var/spool/...

    浅谈python在提示符下使用open打开文件失败的原因及解决方法

    题目:在提示符下使用open打开一个文件 刚开始网上看了下打开的方式,结果一直实现不了,报错是没找到...IOError: [Errno 2] No such file or directory: 'd:..txt' ------------------------------------------------

    windows下写的shell脚本在linux执行出错的解决办法

    在Windows下写了一个shell脚本,上传到Linux下执行时报错: 代码如下:[root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory test.sh源码: 代码如下:#!...

    2009 达内Unix学习笔记

    集合了 所有的 Unix命令... ln -s file1 file1.sln 创建软链接。可跨系统操作,冲破操作权限;也是快捷方式。 八、时间显示 date 显示时间,精确到秒 用法 date [-u] mmddHHMM[[cc]yy][.SS] date [-u] [+format] ...

    kernel-exploit-factory:Linux内核CVE漏洞分析报告和相关调试环境。 您无需再编译Linux内核并配置您的环境

    内核利用工厂 持续更新中…… Linux内核CVE漏洞分析报告和相关调试环境。...chmod: /dev/csaw: No such file or directory ifconfig: SIOCSIFADDR: No such device route: SIOCADDRT: No such device / $ un

Global site tag (gtag.js) - Google Analytics