我在Linux中使用bash脚本迁移数据库输出文件,我想知道如何在bash脚本中执行Linux命令时处理错误。
例如,通常情况下,当我想循环遍历目录中的文件时,我会这样写它
# list files and grep results for .sql extension
for FILE in `ls | grep ".sql"`
do
echo "found file: $FILE"
done
它工作得很好,因为grep如果有.sql扩展名或不返回任何内容,就会返回文件名。
我想知道如何使用返回结果或错误的Linux命令,例如
ls ./*.sql
,
~$ bash --version
GNU bash, version 5.1.12(1)-release (x86_64-pc-linux-gnu)
~$ alias bab=python
~$ $(echo bab)
bash: bab: command not found
我希望bab会变成"python",但看起来并非如此。
~$ $(echo alias)
alias bab='python'
alias ls='ls --color=auto'
~$ bab
Python 3.10.1 (main, Dec 11 2021, 17:2
我正在尝试在以下代码的帮助下安装java,但默认情况下它安装在/usr/java/目录中。我希望它安装在一个单独的目录上,例如/u 01/app。
食谱
# Remove old environment then notify new environment to be created
ruby_block "delete_environement" do
block do
editBashrc = Chef::Util::FileEdit.new("/home/oracle/.bash_profile")
editBashrc.search
我启动了一个git-bash窗口,并输入以下命令:
git-bash ~$ echo $BASH_VERSION
4.4.23(1)-release
git-bash ~$ type cd
cd is a shell builtin
git-bash ~$ cd tmp
git-bash ~/tmp$
# Change of directory is NOT refelected on git-bash window title
git-bash ~/tmp$ ssh user@linux
[user@linux ~]$ echo $BASH_VERSION
4.4.20(1)-releas
我试图在bash上运行以下命令:
./home/abcdef/Desktop/jikesrvm/dist/prototype_x86_64-linux/rvm
这给了我一个
bash: ./home/abcdef/Desktop/jikesrvm/dist/production_x86_64-linux/rvm: No such file or directory
rvm是一个bash文件,当我尝试从它自己的文件夹(production_x86_64-linux)运行它时,它确实运行ok。如果我尝试在打开其父文件夹中的终端时运行它,或者甚至打开它的父文件夹时,它也可以正常工作。
为了以防万一,
我已经为Linux提供了完美的构建脚本。目前,我想适应Cygwin的构建,使它跨平台。问题是构建脚本使用管道重定向,比如|和>,当使用Cygwin的‘bash-c’时,需要用^转义。
我想知道是否有任何解决方案可以避免为Cygwin转义每个管道重定向符号,比如bash命令行选项或env。
例子:
ls -l | tee 1.log在Linux中工作得很好,需要按照下面的方式与Cygwin的bash -c一起使用
ls -l ^| tee 1.log
在脚本中,我从一个函数返回负整数。I使用bash版本的一个环境: GNU Bash版本3.2.51(1)-release (x86_64-suse-linux-gnu)脚本正在运行
在其他使用bash版本的环境中: GNU Bash版本4.2.46(2)-release (x86_64-redhat-linux-gnu)脚本没有运行,只要在函数中返回-1008,它就会终止。当我尝试返回正整数而不是负整数时,它工作得很好。
我不确定这是否是因为bash版本不同。但问题可能是什么呢?
返回-1008
我想使用make构建我的程序,然后通过bash脚本启动创建的可执行文件,但是bash找不到可执行文件,尽管它是创建的,我可以手动启动它。该问题仅存在于Gnome-terminal中的linux mint 19上。Edit:确切的错误消息是:"/path/to/my/executable:没有这样的文件或目录“ 我有一个跨平台的项目,我需要运行cmake,然后构建项目,最后启动创建的可执行文件。我有一个bash脚本来自动化这个过程: Edit:它是唯一引起问题的部分;) for TASK in $@; do
if [[ $TASK == "make" ]]; t
在Bash中尝试别名,无法看到它与cd命令一起工作
[0s][/nobackup/sumikum7]> sjc-tftp
-bash: /auto/tftp-xeinfra/sumikum7/: Is a directory
[0s][/nobackup/sumikum7]> cd sjc-tftp
-bash: cd: sjc-tftp: No such file or directory
[0s][/nobackup/sumikum7]> cd /auto/tftp-xeinfra/sumikum7/
[0s][/auto/tftp-xeinfra/sumikum7]&g