Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

2
删除所有以问号开头的文件
我有一个文件夹,其中有大约4k个文件。其中一些文件以aa ?或!字符开头。我需要删除它们,但找不到可以这样做的表达式: rm -f ./?* 只是删除所有内容。我可能可以grep在ls上使用它,xargs并通过管道将其移动并将文件移动到另一个文件夹,但是我希望有这样做的正确方法。在?和!文件上均需要帮助。

3
bash shell-ssh远程脚本捕获输出和退出代码?
我希望使用Shell来调用远程服务器上的脚本。我想捕获该脚本的输出(其日志消息)及其返回的退出代码。 如果我这样做: ssh user@server /usr/local/scripts/test_ping.sh echo "$?" 我得到退出代码,但无法捕获远程日志消息。 如果我这样做: local RESULTS=$(ssh user@server /usr/local/scripts/test_ping.sh) echo "$?" LOG "${RESULTS}"; 我可以使用LOG函数记录我的输出,但似乎无法获得正确的退出代码,我假设获得的代码是varianble赋值的代码。 我想继续使用我的LOG函数来捕获所有输出,并将其格式化并将其发送给我的文件,系统日志和屏幕。 如何在var中捕获结果并从远程脚本中获取正确的退出代码?
23 bash  shell  ssh  remote 

6
如何从任何URL获得响应?
我被要求编写一个Shell脚本来检查我的项目的URL是否正常运行。 我试图在互联网上找到一些提示,但是我得到的只是关于检查URL是否存在的提示。 我首先尝试过wget。 wget -S --spider https://genesis-dev.webbank.ssmb.com:21589/gop-ui/app.jsp 2>&1 | awk '/^ /' if [ $? -ne 0 ] then echo "Server is UP" else echo "Server is down" fi 我的下一个尝试是curl。 curl -ivs https://genesis-dev.webbank.ssmb.com:21589/opconsole-sit/opconsole.html# if [ $? -ne 0 ] then echo "Server is UP" else echo "Server is down" fi …


2
nohup是否有可能将输出既写入文件nohup.out又写入屏幕/终端?
我正在使用bash外壳。我经常nohup用来确保在关闭启动它们的外壳程序/终端时不会停止我的进程。我使用如下语法: nohup myprocess 启动时,显示nohup以下消息: nohup: ignoring input and appending output to 'nohup.out' 然后,nohup不再向屏幕输出;它全部被写入nohup.out。 但是,我经常希望监视我的计算进度。我可以通过nohup.out使用vi或进行读取tail,但是这样做会很费时间,尤其是在我的计算需要花费几个小时的时候。 有什么办法,我可以打印输出到两个 nohup.out(如果我失去互联网连接,从而启动进程被关闭终端),并在屏幕上?谢谢你的时间。
23 bash  shell  nohup 


5
在正则表达式中,哪些字符需要转义?
通常,正则表达式中的哪些字符需要转义? 例如,以下语法不正确: echo '[]' | grep '[]' grep: Unmatched [ or [^ 但是,在语法上这是正确的: echo '[]' | grep '\[]' [] 是否有任何文档说明哪些字符应在正则表达式中转义,哪些不应该?


4
`curl |有什么区别?sh`和`sh -c“ $(curl)”`?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 2年前。 例如,一种简单的Docker安装方法是: curl -sSL https://get.docker.com/ | sh 但是,我也看到了一些类似于Docker的示例: sh -c "$(curl -sSL https://get.docker.com/)" 它们在功能上似乎相同,但是是否有理由在一个之上使用一个?还是仅仅是偏爱/审美? (值得注意的是,运行来自未知来源的脚本时要格外小心。)

3
获取其他用户的环境变量
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 6年前关闭。 有没有办法可以查看其他用户的环境变量?我想以root用户身份执行此操作,因此权限不会成为问题。 对于用户本人,我使用echo $PATH或set | grep PATH(或set当我不记得变量名时)。对于其他用户,类似的指示是什么? 对于它的价值,我使用的是Ubuntu Server 13.04。

1
卷曲URL调用for循环?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 5年前关闭。 我正在使用bash,正在尝试在for循环中进行curl url调用。 下面是我简单的curl调用- curl -v --header "Connection: keep-alive" "localhost:8080/user?userid=52010&client_id=20&attr=0" 我正在尝试将此curl调用for循环100次- for ((i=1;i<=100;i++)); do curl -v --header "Connection: keep-alive" "localhost:8080/user?uuid=52010&model_id=20&attr=0" done 我尝试在命令行上运行上面的代码,但是它不起作用,并且给我这样的感觉- > 有什么想法我在做什么错?
23 shell  curl 

3
不相等的语法重要吗?
在编写脚本时,我通常使用以下语法编写ifs,因为我很容易理解接下来发生的事情是不正确的。 if [ ! "$1" = "$2" ]; then 其他人说下面的方法更好 if [ "$1" != "$2" ]; then 问题是当我问为什么以及是否存在差异时,没有人似乎没有答案。 那么,这两种语法之间有什么区别吗?其中一个比另一个安全吗?还是仅仅是偏好/习惯的问题?
22 shell  test 


2
管道,数据如何在管道中流动?
我不了解数据在管道中的流动方式,希望有人可以澄清其中的情况。 我认为命令管道以逐行方式处理文件(文本,字符串数组)。(如果每个命令本身一行一行地工作。)文本的每一行都通过管道,命令不必等待前一个命令完成对整个输入的处理。 但似乎并非如此。 这是一个测试示例。有几行文字。我将它们大写,并重复每行两次。我这样做cat text | tr '[:lower:]' '[:upper:]' | sed 'p'。 要遵循此过程,我们可以“交互式”运行它-跳过中的输入文件名cat。管道的每一部分都逐行运行: $ cat | tr '[:lower:]' '[:upper:]' alkjsd ALKJSD sdkj SDKJ $ cat | sed 'p' line1 line1 line1 line 2 line 2 line 2 但是完整的管道确实在等我完成输入,EOF然后才打印结果: $ cat | tr '[:lower:]' '[:upper:]' | sed 'p' I am writing... …

2
复制具有多个扩展名的文件
我想将具有多个扩展名的文件复制到单个目标目录。 例如,我可以使用以下命令将工作目录中的所有.txt文件复制到名为的目录中destination: cp -v *.txt destination/ 我可以使用以下命令将工作目录中的所有.png目录复制到destination: cp -v *.png destination/ 但是将它们作为单独的命令键入非常耗时(即使使用命令历史记录也是如此)。因此,有什么办法可以告诉我cp将带有模式*.txt 或模式的文件复制*.png到destination? 理想情况下,我想能够指定两个以上的模式-就像指导cp复制所有*.txt 或 *.png 或 *.jpg文件destination,例如。 我确信使用shell脚本可以实现所有这些功能- bash例如,我正在使用-但是有什么方法可以仅通过控制台更简单地完成它吗?我能以某种方式使用括号扩展吗? 我知道这是可能的所有文件复制除了匹配某些特定模式的工作目录,但由于我的工作目录含有更多的文件扩展名,我不希望比我复制这样做,那将是一个痛苦。 您对此有什么想法吗?
22 bash  shell  wildcards  cp 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.