我想以我的密码作为参数运行sudo,以便我可以将它用于脚本。 我试过了 sudo -S mypassword execute_command 但没有任何成功。 有什么build议么?
我试图安装Ruby 2.0。 我的命令行被激活,现在看起来像下面这样: -bash: __git_ps1: command not found [11:58:28][whatever@whatever ~]$ 我没有一个线索如何摆脱__git_ps1命令找不到错误。 我search了我的.bash_profile和我的.bashrc,看它是否设置了一个variables或者什么也没有看到任何东西。 我能find的唯一的地方是git_ps1在〜/ .dotfiles / .bash_prompt中。 我完全replace该文件的内容,注销并重新login,它不修复任何内容。 我看到这个 ,但是我对命令行很新,所以我只是迷惑了自己。 有任何想法吗?
分配给像var=foo这样的variables和使用let let var=foo之间有什么区别? 还是像var=${var}bar和let var+=bar ? 每种方法的优点和缺点是什么?
在我的.bashrc我定义了一个可以在命令行中使用的函数: function mycommand() { ssh user@123.456.789.0 cd testdir;./test.sh "$1" } 使用此命令时,只需在远程主机上执行cd命令; test.sh命令在本地主机上执行。 这是因为分号分隔了两个不同的命令: ssh命令和test.sh命令。 我试着按如下方式定义函数(注意单引号): function mycommand() { ssh user@123.456.789.0 'cd testdir;./test.sh "$1"' } 我试图保持cd命令和test.sh命令在一起,但参数$1不解决,独立于我给的function。 总是试图执行一个命令 ./test.sh $1 在远程主机上。 如何正确定义mycommand ,所以脚本test.sh在更改到testdir目录后在远程主机上执行,并且能够将给mycommand的参数mycommand给test.sh ?
我一直在我的Linux机器上开发一个脚本已经有一段时间了,我也想在我的Mac上运行它。 我以为Mac上的function和linux上的function一样,但是今天我意识到这是错误的。 我知道Mac上存在的function较less,但我认为确实存在的function具有相同的实现。 这个问题是关于date命令的。 当我运行命令在我的Linux机器的参数提供一些时间在纳秒,我得到正确的结果,但是当我在我的Mac上运行它,它没有这个选项。 Linux-Machine> date +%N 55555555555 #Current time in nanoseconds Mac-Machine> date +%N N 我如何才能获得在Mac上作为bash命令纳秒的当前时间? 最糟糕的情况是我创build了一小段代码,用C调用一个系统函数,然后在我的脚本中调用它。 任何帮助深表感谢!
我正在尝试从Bash移到zsh。 我把我的.bashrc直接放到我的.zshrc文件中,当我尝试再次使用Bash的时候,它导致了很多错误。 你怎么能把你的.bashrc导出到.zshrc?
我需要从Bash CLI传递一个string作为它的参数,例如 program "don't do this" 该string可能包含任何字符,如'$' , '\'等,我不希望Bash做任何修改。 所以我想用单引号。 但是,以下不起作用: program 'don\'t do this' //escape doesn't work in single quote 虽然以下两个作品: program $'dont\'t do this' //seems fine, but any other side effects? program 'dont'\''do this' //breaking into 3 parts 第一种方法似乎更好,因为它获得较less的预先修改(将美元符号放在前面并将每个\replace成\\ ),但是我不知道美元符号可以做什么。 我真的GOOGLE了,但我找不到我需要的…
所以,我一直试图通过bash提示符自定义,以便它看起来像 [feralin@localhost ~]$ _ 与颜色。 我设法得到恒定的颜色(每次看到提示时都是相同的颜色),但是如果最后一个命令的非零退出状态,我希望用户名('feralin')显示为红色,而不是绿色。 我想出了: \e[1;33m[$(if [[ $? == 0 ]]; then echo "\e[0;31m"; else echo "\e[0;32m"; fi)\u\e[m@\e[1;34m\h \e[0;35m\W\e[1;33m]$ \e[m 然而,根据我的观察, $(if …; fi)似乎只运行一次,运行.bashrc时,结果会被永久replace。 这使名称始终为绿色,即使最后一个退出代码不为零(如echo $? )。 这是怎么回事? 或者是我的提示只是其他问题吗? 长问题简短, 我如何得到我的提示使用最后的退出代码?
在我写的一个bash脚本中,我使用source来包含configuration文件中定义的variables。 要执行的脚本是act.sh ,而作为source的脚本是act.conf.sh ,所以在act.sh我有: source act.conf.sh 但是,这只适用于在包含它的目录中运行act.sh ,因为act.conf.sh指的是放置在工作目录下的文件。 有没有一种解决scheme,使其引用该文件相对于正在执行的脚本,而无需调用cd ? 谢谢。
我有一个Linux bash脚本“myshell”。 我希望它读取两个date作为参数,例如: myshell date1 date2 。 我是一名Java程序员,但不知道如何编写脚本来完成此任务。 脚本的其余部分是这样的: sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml mv tmp.xml wlacd_stat.xml